clang and drm issue: objtool warnings from clang build
Linus Torvalds
torvalds at linux-foundation.org
Sat Apr 26 20:56:59 UTC 2025
On Sat, 26 Apr 2025 at 13:05, Nathan Chancellor <nathan at kernel.org> wrote:
>
> KBUILD_CFLAGS += -mllvm -trap-unreachable
Hmm. That certainly builds for me, but yeah, it generates new objtool
warnings, notably
panic() missing __noreturn in .c/.h or NORETURN() in noreturns.h
and I *think* that is because that flag makes clang not honour our
*explicit* "this code is unreachable" annotations.
So now objtool complains about the fact that clang has generated some
random code that follows a call to 'panic()' even though objtool knows
that panic() cannot return.
And those explicit annotations definitely should be honored.
IOW, there's a *big* difference between "the programmer told me this
is unreachable, so I won't generate code past this point" and "I have
decided this is undefined behavior, so now I won't generate code past
this point".
So what I'm asking for is absolutely not "trap on unreachable". That's
wrong and just plain stupid.
I'm asking for "trap on UD instead of *assuming* it's unreachable".
Because clearly that code *can* be reached, it's just doing something undefined.
See? Big big difference.
Linus
More information about the dri-devel
mailing list