root/tools/include/linux/compiler-gcc.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef _TOOLS_LINUX_COMPILER_H_
   3 #error "Please don't include <linux/compiler-gcc.h> directly, include <linux/compiler.h> instead."
   4 #endif
   5 
   6 /*
   7  * Common definitions for all gcc versions go here.
   8  */
   9 #ifndef GCC_VERSION
  10 #define GCC_VERSION (__GNUC__ * 10000           \
  11                      + __GNUC_MINOR__ * 100     \
  12                      + __GNUC_PATCHLEVEL__)
  13 #endif
  14 
  15 #if GCC_VERSION >= 70000 && !defined(__CHECKER__)
  16 # define __fallthrough __attribute__ ((fallthrough))
  17 #endif
  18 
  19 #if GCC_VERSION >= 40300
  20 # define __compiletime_error(message) __attribute__((error(message)))
  21 #endif /* GCC_VERSION >= 40300 */
  22 
  23 /* &a[0] degrades to a pointer: a different type from an array */
  24 #define __must_be_array(a)      BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
  25 
  26 #ifndef __pure
  27 #define  __pure         __attribute__((pure))
  28 #endif
  29 #define  noinline       __attribute__((noinline))
  30 #ifndef __packed
  31 #define __packed        __attribute__((packed))
  32 #endif
  33 #ifndef __noreturn
  34 #define __noreturn      __attribute__((noreturn))
  35 #endif
  36 #ifndef __aligned
  37 #define __aligned(x)    __attribute__((aligned(x)))
  38 #endif
  39 #define __printf(a, b)  __attribute__((format(printf, a, b)))
  40 #define __scanf(a, b)   __attribute__((format(scanf, a, b)))
  41 
  42 #if GCC_VERSION >= 50100
  43 #define COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW 1
  44 #endif

/* [<][>][^][v][top][bottom][index][help] */