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 | |
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>
-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__)) |