kbuild: enable -Wformat-truncation on clang
This warning option still produces output on gcc but is now clean when building with clang, so enable it conditionally on the compiler for now. As far as I can tell, the remaining warnings with gcc are the result of analysing the code more deeply across inlining, while clang only does this within a function. Link: https://lore.kernel.org/lkml/20240326230511.GA2796782@dev-arch.thelio-3990X/ Link: https://lore.kernel.org/linux-patches/20231002-disable-wformat-truncation-overflow-non-kprintf-v1-1-35179205c8d9@kernel.org/ Link: https://lkml.kernel.org/r/20240415122037.1983124-5-arnd@kernel.org Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Kees Cook <keescook@chromium.org> Cc: Masahiro Yamada <masahiroy@kernel.org> Cc: Nathan Chancellor <nathan@kernel.org> Cc: Nicolas Schier <nicolas@fjasle.eu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
06bb7fc0fe
commit
908dd50827
@ -100,7 +100,14 @@ KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
|
|||||||
KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
|
KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
|
||||||
KBUILD_CFLAGS += $(call cc-disable-warning, packed-not-aligned)
|
KBUILD_CFLAGS += $(call cc-disable-warning, packed-not-aligned)
|
||||||
KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow)
|
KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow)
|
||||||
|
ifdef CONFIG_CC_IS_GCC
|
||||||
KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation)
|
KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation)
|
||||||
|
else
|
||||||
|
# Clang checks for overflow/truncation with '%p', while GCC does not:
|
||||||
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111219
|
||||||
|
KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow-non-kprintf)
|
||||||
|
KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation-non-kprintf)
|
||||||
|
endif
|
||||||
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation)
|
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation)
|
||||||
|
|
||||||
KBUILD_CFLAGS += -Wno-override-init # alias for -Wno-initializer-overrides in clang
|
KBUILD_CFLAGS += -Wno-override-init # alias for -Wno-initializer-overrides in clang
|
||||||
|
Loading…
Reference in New Issue
Block a user