Skip to content

Commit

Permalink
Compiler Attributes: remove unneeded sparse (__CHECKER__) tests
Browse files Browse the repository at this point in the history
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 <[email protected]> # on top of v4.19-rc5, clang 7
Reviewed-by: Nick Desaulniers <[email protected]>
Reviewed-by: Luc Van Oostenryck <[email protected]>
Signed-off-by: Miguel Ojeda <[email protected]>
  • Loading branch information
ojeda committed Sep 30, 2018
1 parent ec0bbef commit 989bd50
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 9 deletions.
6 changes: 2 additions & 4 deletions include/linux/compiler-gcc.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,14 +76,12 @@

#define __compiletime_object_size(obj) __builtin_object_size(obj, 0)

#ifndef __CHECKER__
#define __compiletime_warning(message) __attribute__((__warning__(message)))
#define __compiletime_error(message) __attribute__((__error__(message)))

#ifdef LATENT_ENTROPY_PLUGIN
#if defined(LATENT_ENTROPY_PLUGIN) && !defined(__CHECKER__)
#define __latent_entropy __attribute__((latent_entropy))
#endif
#endif /* __CHECKER__ */

/*
* calling noreturn functions, __builtin_unreachable() and __builtin_trap()
Expand Down Expand Up @@ -131,7 +129,7 @@

/* gcc version specific checks */

#if GCC_VERSION >= 40900 && !defined(__CHECKER__)
#if GCC_VERSION >= 40900
/*
* __assume_aligned(n, k): Tell the optimizer that the returned
* pointer can be assumed to be k modulo n. The second argument is
Expand Down
4 changes: 0 additions & 4 deletions include/linux/compiler.h
Original file line number Diff line number Diff line change
Expand Up @@ -357,11 +357,7 @@ static inline void *offset_to_ptr(const int *off)
compiletime_assert(__native_word(t), \
"Need native word sized stores/loads for atomicity.")

#ifdef __CHECKER__
#define __must_be_array(a) 0
#else
/* &a[0] degrades to a pointer: a different type from an array */
#define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
#endif

#endif /* __LINUX_COMPILER_H */
2 changes: 1 addition & 1 deletion include/linux/compiler_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ struct ftrace_likely_data {
#define __must_check
#endif

#if defined(CC_USING_HOTPATCH) && !defined(__CHECKER__)
#if defined(CC_USING_HOTPATCH)
#define notrace __attribute__((hotpatch(0, 0)))
#else
#define notrace __attribute__((__no_instrument_function__))
Expand Down

0 comments on commit 989bd50

Please sign in to comment.