Blame view
include/linux/compiler-gcc4.h
2.09 KB
94f582f82 Force erroneous i... |
1 2 3 |
#ifndef __LINUX_COMPILER_H #error "Please don't include <linux/compiler-gcc4.h> directly, include <linux/compiler.h> instead." #endif |
1da177e4c Linux-2.6.12-rc2 |
4 |
|
f9d142500 Disallow gcc vers... |
5 |
/* GCC 4.1.[01] miscompiles __weak */ |
8cd2c29dd compiler-gcc4: co... |
6 7 8 9 |
#ifdef __KERNEL__ # if __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ <= 1 # error Your version of gcc miscompiles the __weak directive # endif |
f9d142500 Disallow gcc vers... |
10 |
#endif |
0d7ebbbc6 compiler: introdu... |
11 |
#define __used __attribute__((__used__)) |
1da177e4c Linux-2.6.12-rc2 |
12 13 |
#define __must_check __attribute__((warn_unused_result)) #define __compiler_offsetof(a,b) __builtin_offsetof(a,b) |
a586df067 x86: Support __at... |
14 |
|
f153b8212 Sanitize gcc vers... |
15 |
#if __GNUC_MINOR__ >= 3 |
a586df067 x86: Support __at... |
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
/* Mark functions as cold. gcc will assume any path leading to a call to them will be unlikely. This means a lot of manual unlikely()s are unnecessary now for any paths leading to the usual suspects like BUG(), printk(), panic() etc. [but let's keep them for now for older compilers] Early snapshots of gcc 4.3 don't support this and we can't detect this in the preprocessor, but we can live with this because they're unreleased. Maketime probing would be overkill here. gcc also has a __attribute__((__hot__)) to move hot functions into a special section, but I don't see any sense in this right now in the kernel context */ #define __cold __attribute__((__cold__)) |
1399ff86f kernel.h: add BUI... |
30 |
#define __linktime_error(message) __attribute__((__error__(message))) |
38938c879 Add support for G... |
31 32 33 34 35 36 37 38 39 40 41 42 |
#if __GNUC_MINOR__ >= 5 /* * Mark a position in code as unreachable. This can be used to * suppress control flow warnings after asm blocks that transfer * control elsewhere. * * Early snapshots of gcc 4.5 don't support this and we can't detect * this in the preprocessor, but we can live with this because they're * unreleased. Really, we need to have autoconf for the kernel. */ #define unreachable() __builtin_unreachable() |
9c695203a compiler-gcc.h: g... |
43 44 45 |
/* Mark a function definition as prohibited from being cloned. */ #define __noclone __attribute__((__noclone__)) |
38938c879 Add support for G... |
46 |
#endif |
a586df067 x86: Support __at... |
47 |
#endif |
9f0cf4adb x86: Use __builti... |
48 |
|
7cff7ce94 include/linux/com... |
49 |
#if __GNUC_MINOR__ > 0 |
9f0cf4adb x86: Use __builti... |
50 |
#define __compiletime_object_size(obj) __builtin_object_size(obj, 0) |
7cff7ce94 include/linux/com... |
51 |
#endif |
746a2a838 sparse: Undef __c... |
52 |
#if __GNUC_MINOR__ >= 4 && !defined(__CHECKER__) |
4a3127693 x86: Turn the cop... |
53 |
#define __compiletime_warning(message) __attribute__((warning(message))) |
63312b6a6 x86: Add a Kconfi... |
54 |
#define __compiletime_error(message) __attribute__((error(message))) |
4a3127693 x86: Turn the cop... |
55 |
#endif |