Messages in this thread Patch in this message | | | From | Joe Perches <> | Subject | [PATCH] compiler/compiler-gcc: Add __fallthrough | Date | Fri, 10 Feb 2017 09:08:35 -0800 |
| |
gcc v7.0 can warn on missing break statements from case labels using a special __attribute__((fallthrough))__ marker.
Add a __fallthrough convenience macro for gcc versions >= 7 and make the generic use of __fallthrough a no-op.
Signed-off-by: Joe Perches <joe@perches.com> --- include/linux/compiler-gcc.h | 7 +++++++ include/linux/compiler.h | 6 ++++++ 2 files changed, 13 insertions(+)
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index d5e1fedbad24..6af8d6448f10 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h @@ -304,6 +304,13 @@ #define __no_sanitize_address __attribute__((no_sanitize_address)) #endif +#if GCC_VERSION >= 70000 +/* + * Tell the compiler not to warn when a switch/case fallthrough marker exists + */ +#define __fallthrough __attribute__ ((fallthrough)) +#endif + #endif /* gcc version >= 40000 specific checks */ #if !defined(__noclone) diff --git a/include/linux/compiler.h b/include/linux/compiler.h index 6e8e160b1e4b..16b6efc877f4 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h @@ -477,6 +477,12 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s #define __assume_aligned(a, ...) #endif +/* + * switch/case fallthrough checking + */ +#ifndef __fallthrough +#define __fallthrough +#endif /* Are two types/vars the same type (ignoring qualifiers)? */ #ifndef __same_type -- 2.10.0.rc2.1.g053435c
| |