Fix warnings reported by -Wpedantic

Previously CI hasn't been running with -Wpedantic (using autoconf), so
these haven't been reported previously.

- replace BUILD_ASSERT with static_assert()
- don't use %m GNU extension for printf
- don't use arithmetic on void*
- remove unused variables

Change-Id: I97d1acc908f06773b8b1ee95bfee80760fdc7a63
Signed-off-by: Matt Johnston <matt@codeconstruct.com.au>
diff --git a/astlpc.c b/astlpc.c
index 6de3e37..d322b7c 100644
--- a/astlpc.c
+++ b/astlpc.c
@@ -1401,7 +1401,8 @@
 		astlpc_prwarn(astlpc, "LPC mmap failed");
 		rc = -1;
 	} else {
-		astlpc->lpc_map = lpc_map_base + map.size - LPC_WIN_SIZE;
+		astlpc->lpc_map =
+			(uint8_t *)lpc_map_base + map.size - LPC_WIN_SIZE;
 	}
 
 	close(fd);
diff --git a/core.c b/core.c
index cc39dcf..33f5093 100644
--- a/core.c
+++ b/core.c
@@ -72,13 +72,6 @@
 	size_t max_message_size;
 };
 
-#ifndef BUILD_ASSERT
-#define BUILD_ASSERT(x)                                                        \
-	do {                                                                   \
-		(void)sizeof(char[0 - (!(x))]);                                \
-	} while (0)
-#endif
-
 #ifndef ARRAY_SIZE
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
 #endif
@@ -317,7 +310,7 @@
 	size_t i;
 
 	/* Cleanup message assembly contexts */
-	BUILD_ASSERT(ARRAY_SIZE(mctp->msg_ctxs) < SIZE_MAX);
+	static_assert(ARRAY_SIZE(mctp->msg_ctxs) < SIZE_MAX, "size");
 	for (i = 0; i < ARRAY_SIZE(mctp->msg_ctxs); i++) {
 		struct mctp_msg_ctx *tmp = &mctp->msg_ctxs[i];
 		if (tmp->buf)
@@ -439,8 +432,11 @@
 
 static inline bool mctp_ctrl_cmd_is_transport(struct mctp_ctrl_msg_hdr *hdr)
 {
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wtype-limits"
 	return ((hdr->command_code >= MCTP_CTRL_CMD_FIRST_TRANSPORT) &&
 		(hdr->command_code <= MCTP_CTRL_CMD_LAST_TRANSPORT));
+#pragma GCC diagnostic pop
 }
 
 static bool mctp_ctrl_handle_msg(struct mctp_bus *bus, mctp_eid_t src,
diff --git a/serial.c b/serial.c
index 47d250e..e2a2df2 100644
--- a/serial.c
+++ b/serial.c
@@ -317,7 +317,7 @@
 	size_t i;
 
 	for (i = 0; i < len; i++)
-		mctp_rx_consume_one(serial, *(uint8_t *)(buf + i));
+		mctp_rx_consume_one(serial, ((const uint8_t *)buf)[i]);
 }
 
 #ifdef MCTP_HAVE_FILEIO
@@ -330,7 +330,8 @@
 		return -1;
 
 	if (len < 0) {
-		mctp_prerr("can't read from serial device: %m");
+		mctp_prerr("can't read from serial device: %s",
+			   strerror(errno));
 		return -1;
 	}
 
@@ -353,7 +354,7 @@
 {
 	serial->fd = open(device, O_RDWR);
 	if (serial->fd < 0)
-		mctp_prerr("can't open device %s: %m", device);
+		mctp_prerr("can't open device %s: %s", device, strerror(errno));
 
 	return 0;
 }
diff --git a/tests/test_astlpc.c b/tests/test_astlpc.c
index e8f2bce..48beb4e 100644
--- a/tests/test_astlpc.c
+++ b/tests/test_astlpc.c
@@ -1515,20 +1515,13 @@
 };
 /* clang-format on */
 
-#ifndef BUILD_ASSERT
-#define BUILD_ASSERT(x)                                                        \
-	do {                                                                   \
-		(void)sizeof(char[0 - (!(x))]);                                \
-	} while (0)
-#endif
-
 int main(void)
 {
 	size_t i;
 
 	mctp_set_log_stdio(MCTP_LOG_DEBUG);
 
-	BUILD_ASSERT(ARRAY_SIZE(astlpc_tests) < SIZE_MAX);
+	static_assert(ARRAY_SIZE(astlpc_tests) < SIZE_MAX, "size");
 	for (i = 0; i < ARRAY_SIZE(astlpc_tests); i++) {
 		mctp_prlog(MCTP_LOG_DEBUG, "begin: %s", astlpc_tests[i].name);
 		astlpc_tests[i].test();
diff --git a/tests/test_core.c b/tests/test_core.c
index 435e5e4..ead3990 100644
--- a/tests/test_core.c
+++ b/tests/test_core.c
@@ -623,20 +623,13 @@
 };
 /* clang-format on */
 
-#ifndef BUILD_ASSERT
-#define BUILD_ASSERT(x)                                                        \
-	do {                                                                   \
-		(void)sizeof(char[0 - (!(x))]);                                \
-	} while (0)
-#endif
-
 int main(void)
 {
 	uint8_t i;
 
 	mctp_set_log_stdio(MCTP_LOG_DEBUG);
 
-	BUILD_ASSERT(ARRAY_SIZE(mctp_core_tests) < SIZE_MAX);
+	static_assert(ARRAY_SIZE(mctp_core_tests) < SIZE_MAX, "size");
 	for (i = 0; i < ARRAY_SIZE(mctp_core_tests); i++) {
 		mctp_prlog(MCTP_LOG_DEBUG, "begin: %s",
 			   mctp_core_tests[i].name);
diff --git a/utils/mctp-capture.c b/utils/mctp-capture.c
index b38e92d..ea83146 100644
--- a/utils/mctp-capture.c
+++ b/utils/mctp-capture.c
@@ -30,8 +30,6 @@
 
 int capture_prepare(struct capture *cap)
 {
-	int rc;
-
 	if (!(cap->pcap = pcap_open_dead(CAPTURE_LINKTYPE_LINUX_SLL2,
 					 UINT16_MAX))) {
 		fprintf(stderr, "pcap_open_dead: failed\n");
@@ -135,7 +133,7 @@
 
 	/* Ignore the eid at start of buf */
 	memcpy(pktbuf + sizeof(struct sll2_header) + sizeof(struct mctp_hdr),
-	       buf + 1, len - 1);
+	       (const uint8_t *)buf + 1, len - 1);
 
 	hdr.caplen = size;
 	hdr.len = size;
diff --git a/utils/mctp-capture.h b/utils/mctp-capture.h
index e432df9..261caba 100644
--- a/utils/mctp-capture.h
+++ b/utils/mctp-capture.h
@@ -3,7 +3,9 @@
 #ifndef _UTILS_MCTP_CAPTURE_H
 #define _UTILS_MCTP_CAPTURE_H
 
+#ifdef HAVE_CONFIG_H
 #include "config.h"
+#endif
 
 #include "compiler.h"
 #include "libmctp.h"
diff --git a/utils/mctp-demux-daemon.c b/utils/mctp-demux-daemon.c
index fae4f35..7357d43 100644
--- a/utils/mctp-demux-daemon.c
+++ b/utils/mctp-demux-daemon.c
@@ -2,7 +2,9 @@
 
 #define _GNU_SOURCE
 
+#ifdef HAVE_CONFIG_H
 #include "config.h"
+#endif
 
 #define SD_LISTEN_FDS_START 3
 
@@ -64,7 +66,7 @@
 	struct binding *binding;
 	bool verbose;
 	int local_eid;
-	void *buf;
+	uint8_t *buf;
 	size_t buf_size;
 
 	int sock;