Silence objtool warnings from 55d7afa4
The use of __noreturn__ in 55d7afa4ad
on
spl_panic() caused objtool warnings on Linux when the kernel is built
with CONFIG_STACK_VALIDATION=y. This patch works around that by
restricting the application of __noreturn__ to builds for static
analyzers.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Closes #14068
This commit is contained in:
parent
871d66dbf2
commit
eeddd80572
|
@ -54,6 +54,9 @@
|
|||
/*
|
||||
* Common DEBUG functionality.
|
||||
*/
|
||||
#if defined(__COVERITY__) || defined(__clang_analyzer__)
|
||||
__attribute__((__noreturn__))
|
||||
#endif
|
||||
extern void spl_panic(const char *file, const char *func, int line,
|
||||
const char *fmt, ...) __attribute__((__noreturn__));
|
||||
extern void spl_dumpstack(void);
|
||||
|
|
|
@ -54,8 +54,21 @@
|
|||
#define __maybe_unused __attribute__((unused))
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Without this, we see warnings from objtool during normal Linux builds when
|
||||
* the kernel is built with CONFIG_STACK_VALIDATION=y:
|
||||
*
|
||||
* warning: objtool: tsd_create() falls through to next function __list_add()
|
||||
* warning: objtool: .text: unexpected end of section
|
||||
*
|
||||
* Until the toolchain stops doing this, we must only define this attribute on
|
||||
* spl_panic() when doing static analysis.
|
||||
*/
|
||||
#if defined(__COVERITY__) || defined(__clang_analyzer__)
|
||||
__attribute__((__noreturn__))
|
||||
#endif
|
||||
extern void spl_panic(const char *file, const char *func, int line,
|
||||
const char *fmt, ...) __attribute__((__noreturn__));
|
||||
const char *fmt, ...);
|
||||
extern void spl_dumpstack(void);
|
||||
|
||||
static inline int
|
||||
|
|
Loading…
Reference in New Issue