[PATCH] compiler: add support for fallthrough attribute
Ahmad Fatoum
ahmad at a3f.at
Wed Mar 2 12:12:15 PST 2022
Use of it is enforced in Linux now, so code we'll port may contain it.
Import the definition.
Signed-off-by: Ahmad Fatoum <ahmad at a3f.at>
---
include/linux/compiler_types.h | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
index aa9cbcac7740..bc1b43aab0dc 100644
--- a/include/linux/compiler_types.h
+++ b/include/linux/compiler_types.h
@@ -112,6 +112,27 @@ struct ftrace_likely_data {
#define __deprecated
#define __deprecated_for_modules
+#ifndef __has_attribute
+#define __has_attribute(...) 0
+#endif
+
+/*
+ * Add the pseudo keyword 'fallthrough' so case statement blocks
+ * must end with any of these keywords:
+ * break;
+ * fallthrough;
+ * continue;
+ * goto <label>;
+ * return [expression];
+ *
+ * gcc: https://gcc.gnu.org/onlinedocs/gcc/Statement-Attributes.html#Statement-Attributes
+ */
+#if __has_attribute(__fallthrough__)
+# define fallthrough __attribute__((__fallthrough__))
+#else
+# define fallthrough do {} while (0) /* fallthrough */
+#endif
+
#endif /* __KERNEL__ */
#endif /* __ASSEMBLY__ */
--
2.34.1
More information about the barebox
mailing list