On Tue, Sep 15, 2020 at 2:02 PM Josh Poimboeuf <jpoim...@redhat.com> wrote: > > panic() is noreturn, so the compiler is enforcing the fact that it > doesn't return, by trapping if it does return. > > I seem to remember that's caused by CONFIG_UBSAN_TRAP.
Indeed, if I remove CONFIG_UBSAN_TRAP from the 0day report's randconfig, these unreachable instruction warnings all go away. So what's the right way to fix this? CONFIG_UBSAN_TRAP enables -fsanitize-undefined-trap-on-error (not sure why that's wrapped in cc-option; it shouldn't be selectable via Kconfig if unsupported by the toolchain). Should clang not be emitting `ud2` trapping instructions for this flag for no-return functions? or Should objtool be made aware of the config option and then not check traps after no-returns? I suspect the latter, but I'm not sure how feasible it is to implement. Josh, Marco, do you have thoughts on the above? -- Thanks, ~Nick Desaulniers