diff options
| author | Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> | 2018-08-31 12:00:16 -0400 |
|---|---|---|
| committer | Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> | 2018-09-30 14:14:03 -0400 |
| commit | 989bd5000f36052df604888ed12bb6ef390786b7 (patch) | |
| tree | 6973e4987800fbac0b4a52b3a886992c92a5d96d /include | |
| parent | ec0bbef66f867854691d5af18c2231d746958e0e (diff) | |
Compiler Attributes: remove unneeded sparse (__CHECKER__) tests
Sparse knows about a few more attributes now, so we can remove
the __CHECKER__ conditions from them (which, in turn, allow us
to move some of them later on to compiler_attributes.h).
* assume_aligned: since sparse's commit ffc860b ("sparse:
ignore __assume_aligned__ attribute"), included in 0.5.1
* error: since sparse's commit 0a04210 ("sparse: Add 'error'
to ignored attributes"), included in 0.5.0
* hotpatch: since sparse's commit 6043210 ("sparse/parse.c:
ignore hotpatch attribute"), included in 0.5.1
* warning: since sparse's commit 977365d ("Avoid "attribute
'warning': unknown attribute" warning"), included in 0.4.2
On top of that, __must_be_array does not need it either because:
* Even ancient versions of sparse do not have a problem
* BUILD_BUG_ON_ZERO() is currently disabled for __CHECKER__
Tested-by: Sedat Dilek <sedat.dilek@gmail.com> # on top of v4.19-rc5, clang 7
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/compiler-gcc.h | 6 | ||||
| -rw-r--r-- | include/linux/compiler.h | 4 | ||||
| -rw-r--r-- | include/linux/compiler_types.h | 2 |
3 files changed, 3 insertions, 9 deletions
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index 3b32bbfa5a49..1ca6a51cfaa9 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h | |||
| @@ -76,14 +76,12 @@ | |||
| 76 | 76 | ||
| 77 | #define __compiletime_object_size(obj) __builtin_object_size(obj, 0) | 77 | #define __compiletime_object_size(obj) __builtin_object_size(obj, 0) |
| 78 | 78 | ||
| 79 | #ifndef __CHECKER__ | ||
| 80 | #define __compiletime_warning(message) __attribute__((__warning__(message))) | 79 | #define __compiletime_warning(message) __attribute__((__warning__(message))) |
| 81 | #define __compiletime_error(message) __attribute__((__error__(message))) | 80 | #define __compiletime_error(message) __attribute__((__error__(message))) |
| 82 | 81 | ||
| 83 | #ifdef LATENT_ENTROPY_PLUGIN | 82 | #if defined(LATENT_ENTROPY_PLUGIN) && !defined(__CHECKER__) |
| 84 | #define __latent_entropy __attribute__((latent_entropy)) | 83 | #define __latent_entropy __attribute__((latent_entropy)) |
| 85 | #endif | 84 | #endif |
| 86 | #endif /* __CHECKER__ */ | ||
| 87 | 85 | ||
| 88 | /* | 86 | /* |
| 89 | * calling noreturn functions, __builtin_unreachable() and __builtin_trap() | 87 | * calling noreturn functions, __builtin_unreachable() and __builtin_trap() |
| @@ -131,7 +129,7 @@ | |||
| 131 | 129 | ||
| 132 | /* gcc version specific checks */ | 130 | /* gcc version specific checks */ |
| 133 | 131 | ||
| 134 | #if GCC_VERSION >= 40900 && !defined(__CHECKER__) | 132 | #if GCC_VERSION >= 40900 |
| 135 | /* | 133 | /* |
| 136 | * __assume_aligned(n, k): Tell the optimizer that the returned | 134 | * __assume_aligned(n, k): Tell the optimizer that the returned |
| 137 | * pointer can be assumed to be k modulo n. The second argument is | 135 | * pointer can be assumed to be k modulo n. The second argument is |
diff --git a/include/linux/compiler.h b/include/linux/compiler.h index 165b1d5683ed..4030a2940d6b 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h | |||
| @@ -357,11 +357,7 @@ static inline void *offset_to_ptr(const int *off) | |||
| 357 | compiletime_assert(__native_word(t), \ | 357 | compiletime_assert(__native_word(t), \ |
| 358 | "Need native word sized stores/loads for atomicity.") | 358 | "Need native word sized stores/loads for atomicity.") |
| 359 | 359 | ||
| 360 | #ifdef __CHECKER__ | ||
| 361 | #define __must_be_array(a) 0 | ||
| 362 | #else | ||
| 363 | /* &a[0] degrades to a pointer: a different type from an array */ | 360 | /* &a[0] degrades to a pointer: a different type from an array */ |
| 364 | #define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0])) | 361 | #define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0])) |
| 365 | #endif | ||
| 366 | 362 | ||
| 367 | #endif /* __LINUX_COMPILER_H */ | 363 | #endif /* __LINUX_COMPILER_H */ |
diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h index 5ff9cda893f4..a3eceb3ad1b3 100644 --- a/include/linux/compiler_types.h +++ b/include/linux/compiler_types.h | |||
| @@ -218,7 +218,7 @@ struct ftrace_likely_data { | |||
| 218 | #define __must_check | 218 | #define __must_check |
| 219 | #endif | 219 | #endif |
| 220 | 220 | ||
| 221 | #if defined(CC_USING_HOTPATCH) && !defined(__CHECKER__) | 221 | #if defined(CC_USING_HOTPATCH) |
| 222 | #define notrace __attribute__((hotpatch(0, 0))) | 222 | #define notrace __attribute__((hotpatch(0, 0))) |
| 223 | #else | 223 | #else |
| 224 | #define notrace __attribute__((__no_instrument_function__)) | 224 | #define notrace __attribute__((__no_instrument_function__)) |
