#define CAN_COPY_VA_LIST
#endif
+/* This attribute prevents unused function warnings in gcc and clang. */
+#ifdef __GNUC__
+#define UNUSED __attribute__((__unused__))
+#else
+#define UNUSED
+#endif
+
#if defined(macintosh) || (defined(__MACH__) && defined(__APPLE__))
#include <TargetConditionals.h>
#endif
#if !defined(SHARED) && !defined(_WIN32)
/*
- * In this case, we just don't care about finalization.
- *
- * The code will still define the function, but we won't do anything
- * with it. Annoying: This may generate unused-function warnings.
+ * In this case, we just don't care about finalization. The code will still
+ * define the function, but we won't do anything with it.
*/
-
# define MAKE_FINI_FUNCTION(NAME) \
- static void NAME(void)
+ static void NAME(void) UNUSED
#elif defined(USE_LINKER_FINI_OPTION) || defined(_WIN32)
/* If we're told the linker option will be used, it doesn't really