diff --git a/src/include/sof/debug/panic.h b/src/include/sof/debug/panic.h index 382ee23e1909..1a64915647f1 100644 --- a/src/include/sof/debug/panic.h +++ b/src/include/sof/debug/panic.h @@ -12,6 +12,14 @@ #include #include +#ifdef __clang_analyzer__ +#define SOF_NORETURN __attribute__((analyzer_noreturn)) +#elif __GNUC__ +#define SOF_NORETURN __attribute__((noreturn)) +#else +#define SOF_NORETURN +#endif + #ifndef RELATIVE_FILE #error "This file requires RELATIVE_FILE to be defined. " \ "Add it to CMake's target with sof_append_relative_path_definitions." @@ -19,13 +27,9 @@ void dump_panicinfo(void *addr, struct sof_ipc_panic_info *panic_info); void panic_rewind(uint32_t p, uint32_t stack_rewind_frames, - struct sof_ipc_panic_info *panic_info, uintptr_t *data); -#if __clang_analyzer__ -void __panic(uint32_t p, char *filename, uint32_t linenum) - __attribute__((analyzer_noreturn)); -#else -void __panic(uint32_t p, char *filename, uint32_t linenum); -#endif + struct sof_ipc_panic_info *panic_info, uintptr_t *data) + SOF_NORETURN; +void __panic(uint32_t p, char *filename, uint32_t linenum) SOF_NORETURN; /* panic dump filename and linenumber of the call */ #define panic(x) __panic((x), (RELATIVE_FILE), (__LINE__)) diff --git a/tools/testbench/panic.c b/tools/testbench/panic.c index f8fda1aa02db..807c19a0c121 100644 --- a/tools/testbench/panic.c +++ b/tools/testbench/panic.c @@ -5,5 +5,9 @@ // Author: Tomasz Lauda #include +#include -void __panic(uint32_t p, char *filename, uint32_t linenum) { } +void __panic(uint32_t p, char *filename, uint32_t linenum) +{ + abort(); +}