aboutsummaryrefslogtreecommitdiff
path: root/src/include/k5-platform.h
diff options
context:
space:
mode:
authorRobbie Harwood <rharwood@redhat.com>2017-04-06 14:43:13 -0400
committerGreg Hudson <ghudson@mit.edu>2017-04-14 12:02:58 -0400
commit8815ad966df1b7c5a0120f88f656cde34290d5c1 (patch)
tree33ddb8160c23a3a33b790d18ee96de8fdd9bcafa /src/include/k5-platform.h
parentd7b31c7b78336d7108ced656ee1caab0d6acaddd (diff)
downloadkrb5-8815ad966df1b7c5a0120f88f656cde34290d5c1.zip
krb5-8815ad966df1b7c5a0120f88f656cde34290d5c1.tar.gz
krb5-8815ad966df1b7c5a0120f88f656cde34290d5c1.tar.bz2
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]
Diffstat (limited to 'src/include/k5-platform.h')
-rw-r--r--src/include/k5-platform.h16
1 files changed, 10 insertions, 6 deletions
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 <TargetConditionals.h>
#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