summaryrefslogtreecommitdiff
path: root/include/compiler.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/compiler.h')
-rw-r--r--include/compiler.h25
1 files changed, 23 insertions, 2 deletions
diff --git a/include/compiler.h b/include/compiler.h
index 43984338..a1905d27 100644
--- a/include/compiler.h
+++ b/include/compiler.h
@@ -1,5 +1,5 @@
/* ----------------------------------------------------------------------- *
- *
+ *
* Copyright 2007-2018 The NASM Authors - All Rights Reserved
* See the file AUTHORS included with the NASM distribution for
* the specific copyright holders.
@@ -14,7 +14,7 @@
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
@@ -310,6 +310,27 @@ static inline void *mempcpy(void *dst, const void *src, size_t n)
#define printf_func(fmt, list) format_func3(printf,fmt,list)
#define printf_func_ptr(fmt, list) format_func3_ptr(printf,fmt,list)
+/*
+ * A static [inline] function which either is currently unused but
+ * likely to be used in the future, or used only under some #if
+ * combinations. Mark with this option to suppress compiler
+ * warnings.
+ *
+ * This is better than #if(def) because it still lets the compiler
+ * analyze the function for validity, and it works even for the
+ * conditional use case.
+ *
+ * The macro UNUSED is set to 1 if the unused macro is meaningful,
+ * otherwise 0; this may be useful in some #if statements.
+ */
+#ifdef HAVE_FUNC_ATTRIBUTE_UNUSED
+# define unused __attribute__((unused))
+# define UNUSED 1
+#else
+# define unused
+# define UNUSED 0
+#endif
+
/* Determine probabilistically if something is a compile-time constant */
#ifdef HAVE___BUILTIN_CONSTANT_P
# if defined(__GNUC__) && (__GNUC__ >= 5)