This make it possible to declare function arguments in headers as
potentially unused, so that they do not emit warnings. We will use this
instead of the BSD __unused, which we cannot currently enable on GNU
systems due to Linux and glibc having conflicting symbols.
#define LIBBSD_GCC_VERSION 0
#endif
+#if LIBBSD_GCC_VERSION >= 0x0300 || __has_attribute(__unused__)
+# define LIBBSD_UNUSED __attribute__((__unused__))
+#else
+# define LIBBSD_UNUSED
+#endif
+
#if LIBBSD_GCC_VERSION >= 0x0405 || __has_attribute(__deprecated__)
#define LIBBSD_DEPRECATED(x) __attribute__((__deprecated__(x)))
#elif LIBBSD_GCC_VERSION >= 0x0301
* Disable for now. */
#if 0
#ifndef __unused
-# if LIBBSD_GCC_VERSION >= 0x0300
-# define __unused __attribute__((__unused__))
-# else
-# define __unused
-# endif
+# define __unused LIBBSD_UNUSED
#endif
#endif