On Sun, Oct 10, 2021 at 11:37 AM Marc Zyngier <maz(a)kernel.org> wrote:
I think the problem squarely lies with the compiler (or the
way it interprets the BUILD_BUG helper). If it cannot see that
BUILD_BUG() trumps the control flow analysis, then this warning
is totally useless.
The fake, generated `__compiletime_assert` should be annotated
`__noreturn`. That gives enough information to the compiler to avoid
the warning:
https://godbolt.org/z/x1v69jjYY
And we should also move `__compiletime_{error,warning}` to compiler
attributes since Clang trunk has it now, so that we catch the error
earlier:
https://godbolt.org/z/jd8Eb9Mf1
I will send a couple patches.
Cheers,
Miguel