utils.h: add fallthrough macro
authorFelix Fietkau <nbd@nbd.name>
Sun, 16 May 2021 15:31:57 +0000 (17:31 +0200)
committerFelix Fietkau <nbd@nbd.name>
Sun, 16 May 2021 15:32:00 +0000 (17:32 +0200)
This can be used to silence clang warnings about unannotated fall-through

Signed-off-by: Felix Fietkau <nbd@nbd.name>
utils.h

diff --git a/utils.h b/utils.h
index 5c53cc0260d39b00e9bec1a8062356904e0060b1..dacac6e41092e2b395f3867fa6dd91812a40acf8 100644 (file)
--- a/utils.h
+++ b/utils.h
@@ -227,6 +227,18 @@ int clock_gettime(int type, struct timespec *tv);
 #define __hidden __attribute__((visibility("hidden")))
 #endif
 
+#ifndef __has_attribute
+# define __has_attribute(x) 0
+#endif
+
+#ifndef fallthrough
+# if __has_attribute(__fallthrough__)
+#  define fallthrough __attribute__((__fallthrough__))
+# else
+#  define fallthrough do {} while (0)  /* fallthrough */
+# endif
+#endif
+
 int b64_encode(const void *src, size_t src_len,
               void *dest, size_t dest_len);