aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiguel Ojeda <miguel.ojeda.sandonis@gmail.com>2018-08-31 12:00:16 -0400
committerMiguel Ojeda <miguel.ojeda.sandonis@gmail.com>2018-09-30 14:14:03 -0400
commit989bd5000f36052df604888ed12bb6ef390786b7 (patch)
tree6973e4987800fbac0b4a52b3a886992c92a5d96d
parentec0bbef66f867854691d5af18c2231d746958e0e (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.h6
-rw-r--r--include/linux/compiler.h4
-rw-r--r--include/linux/compiler_types.h2
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__))