summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJoshua Watt <jpewhacker@gmail.com>2018-02-09 10:27:18 -0600
committerMark Wielaard <mark@klomp.org>2018-02-10 03:19:26 +0100
commit555e15ebe8bf1eb33d00747173cfc80cc65648a4 (patch)
tree6aa9cca6e04514cbc45d88f96a873cc6a4767472 /lib
parent240a068fcf3eb6bbcda525f80c8778de62621d9e (diff)
Use fallthrough attribute.
Use __attribute__ ((fallthrough)) to indicate switch case fall through instead of a comment. This ensures that the fallthrough warning is not triggered even if the file is pre-processed (hence stripping the comments) before it is compiled. The actual fallback implementation is hidden behind a FALLBACK macro in case the compiler doesn't support it. Finally, the -Wimplict-fallthrough warning was upgraded to only allow the attribute to satisfy it; a comment alone is no longer sufficient. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/ChangeLog4
-rw-r--r--lib/eu-config.h7
2 files changed, 11 insertions, 0 deletions
diff --git a/lib/ChangeLog b/lib/ChangeLog
index 769c3dc9..0f03dab0 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,7 @@
+2018-02-09 Joshua Watt <JPEWhacker@gmail.com>
+
+ * eu-config.h (FALLTHROUGH): New macro.
+
2017-10-16 Mark Wielaard <mark@klomp.org>
* md5.{c,h}: Removed.
diff --git a/lib/eu-config.h b/lib/eu-config.h
index 135803e7..84b22d7c 100644
--- a/lib/eu-config.h
+++ b/lib/eu-config.h
@@ -198,5 +198,12 @@ asm (".section predict_data, \"aw\"; .previous\n"
# define COMPAT_VERSION(name, version, prefix) error "should use #ifdef SYMBOL_VERSIONING"
#endif
+#ifndef FALLTHROUGH
+# ifdef HAVE_FALLTHROUGH
+# define FALLTHROUGH __attribute__ ((fallthrough))
+# else
+# define FALLTHROUGH ((void) 0)
+# endif
+#endif
#endif /* eu-config.h */