On Mon, Feb 28, 2022 at 12:47 PM Marco Elver elver@google.com wrote:
On Mon, 28 Feb 2022 at 11:32, Arnd Bergmann arnd@kernel.org wrote:
Nathan Chancellor reported an additional -Wdeclaration-after-statement warning that appears in a system header on arm, this still needs a workaround.
On the topic of Wdeclaration-after-statement, Clang only respects this warning with C99 and later starting with Clang 14: https://github.com/llvm/llvm-project/commit/c65186c89f35#diff-ec770381d76c85...
Until Clang 14, -Wdeclaration-after-statement is ignored by Clang in newer standards. If this is a big problem, we can probably convince the Clang stable folks to backport the fixes. However, the build won't fail, folks might just miss the warning if they don't also test with GCC.
I don't expect this is to be a big issue, as long as the latest clang behaves as expected. There are many warnings that are only produced by one of the two compilers, so this is something we already deal with.
I think it's more important to address the extra warning that Nathan reported, where clang now complains about the intermingled declaration in a system header when previously neither gcc nor clang noticed this.
The differences between gnu99, gnu11, gnu1x and gnu17 are fairly minimal and mainly impact warnings at the -Wpedantic level that the kernel never enables. Between these, gnu11 is the newest version that is supported by all supported compiler versions, though it is only the default on gcc-5, while all other supported versions of gcc or clang default to gnu1x/gnu17.
Link: https://lore.kernel.org/lkml/CAHk-=wiyCH7xeHcmiFJ-YgXUy2Jaj7pnkdKpcovt8fYbVF... Link: https://github.com/ClangBuiltLinux/linux/issues/1603 Suggested-by: Linus Torvalds torvalds@linux-foundation.org Cc: Masahiro Yamada masahiroy@kernel.org Cc: linux-kbuild@vger.kernel.org Cc: llvm@lists.linux.dev Signed-off-by: Arnd Bergmann arnd@arndb.de
Acked-by: Marco Elver elver@google.com
Thanks,
Arnd