diff options
Diffstat (limited to 'include/linux/compiler_attributes.h')
| -rw-r--r-- | include/linux/compiler_attributes.h | 17 | 
1 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/compiler_attributes.h b/include/linux/compiler_attributes.h index 6b318efd8a74..cdf016596659 100644 --- a/include/linux/compiler_attributes.h +++ b/include/linux/compiler_attributes.h @@ -40,6 +40,7 @@  # define __GCC4_has_attribute___noclone__             1  # define __GCC4_has_attribute___nonstring__           0  # define __GCC4_has_attribute___no_sanitize_address__ (__GNUC_MINOR__ >= 8) +# define __GCC4_has_attribute___fallthrough__         0  #endif  /* @@ -186,6 +187,22 @@  #endif  /* + * Add the pseudo keyword 'fallthrough' so case statement blocks + * must end with any of these keywords: + *   break; + *   fallthrough; + *   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 + +/*   * Note the missing underscores.   *   *   gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-noinline-function-attribute  | 
