From 8815ad966df1b7c5a0120f88f656cde34290d5c1 Mon Sep 17 00:00:00 2001 From: Robbie Harwood Date: Thu, 6 Apr 2017 14:43:13 -0400 Subject: Fix unused finalizer function warning When we are building a static object containing a finalizer function (e.g. for the profile library tests), mark the finalizer as unused to avoid warnings in gcc and clang. [ghudson@mit.edu: commented UNUSED definition and moved it so we can use it elsewhere later; rewrote commit message] --- src/include/k5-platform.h | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/include/k5-platform.h') diff --git a/src/include/k5-platform.h b/src/include/k5-platform.h index 994f463..62d1e2a 100644 --- a/src/include/k5-platform.h +++ b/src/include/k5-platform.h @@ -71,6 +71,13 @@ #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 #endif @@ -357,14 +364,11 @@ typedef struct { int error; unsigned char did_run; } k5_init_t; #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 -- cgit v1.1