diff options
| author | Greg Hackmann <ghackmann@google.com> | 2017-10-16 15:28:15 -0700 |
|---|---|---|
| committer | Greg Hackmann <ghackmann@google.com> | 2017-10-16 15:28:21 -0700 |
| commit | 02049f8843cbca96b6bf0821c648071666af89a7 (patch) | |
| tree | fa975cff0515664473f4ac427f69c2657fb7e1ed /include/linux/compiler-gcc.h | |
| parent | ec888d46d8993b2bf205ed375e538a3819c23659 (diff) | |
| parent | 20ea95166e628343b388139f1b521c50f5fd0b44 (diff) | |
Merge branch 'android-4.4-llvm' into android-4.4
Change-Id: Ieb23e9018ae152706f1980fcd5cbd1dffb4d8be6
Signed-off-by: Greg Hackmann <ghackmann@google.com>
Diffstat (limited to 'include/linux/compiler-gcc.h')
| -rw-r--r-- | include/linux/compiler-gcc.h | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index 287e698c28de..557dae96ce74 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h @@ -66,18 +66,22 @@ /* * Force always-inline if the user requests it so via the .config, - * or if gcc is too old: + * or if gcc is too old. + * GCC does not warn about unused static inline functions for + * -Wunused-function. This turns out to avoid the need for complex #ifdef + * directives. Suppress the warning in clang as well by using "unused" + * function attribute, which is redundant but not harmful for gcc. */ #if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \ !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4) -#define inline inline __attribute__((always_inline)) notrace -#define __inline__ __inline__ __attribute__((always_inline)) notrace -#define __inline __inline __attribute__((always_inline)) notrace +#define inline inline __attribute__((always_inline,unused)) notrace +#define __inline__ __inline__ __attribute__((always_inline,unused)) notrace +#define __inline __inline __attribute__((always_inline,unused)) notrace #else /* A lot of inline functions can cause havoc with function tracing */ -#define inline inline notrace -#define __inline__ __inline__ notrace -#define __inline __inline notrace +#define inline inline __attribute__((unused)) notrace +#define __inline__ __inline__ __attribute__((unused)) notrace +#define __inline __inline __attribute__((unused)) notrace #endif #define __always_inline inline __attribute__((always_inline)) |
