scripts/Makefile.extrawarn: Do not show clang's non-kprintf warnings at W=1
[ Upstream commit 738fc998b639407346a9e026514f0562301462cd ] Clang's -Wformat-overflow and -Wformat-truncation have chosen to check '%p' unlike GCC but it does not know about the kernel's pointer extensions in lib/vsprintf.c, so the developers split that part of the warning out for the kernel to disable because there will always be false positives. Commit908dd50827("kbuild: enable -Wformat-truncation on clang") did disabled these warnings but only in a block that would be called when W=1 was not passed, so they would appear with W=1. Move the disabling of the non-kprintf warnings to a block that always runs so that they are never seen, regardless of warning level. Fixes:908dd50827("kbuild: enable -Wformat-truncation on clang") Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202501291646.VtwF98qd-lkp@intel.com/ Signed-off-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
aa879ef6d3
commit
1f5b7a566e
@@ -31,6 +31,11 @@ KBUILD_CFLAGS-$(CONFIG_CC_NO_ARRAY_BOUNDS) += -Wno-array-bounds
|
||||
ifdef CONFIG_CC_IS_CLANG
|
||||
# The kernel builds with '-std=gnu11' so use of GNU extensions is acceptable.
|
||||
KBUILD_CFLAGS += -Wno-gnu
|
||||
|
||||
# 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)
|
||||
else
|
||||
|
||||
# gcc inanely warns about local variables called 'main'
|
||||
@@ -102,11 +107,6 @@ KBUILD_CFLAGS += $(call cc-disable-warning, packed-not-aligned)
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow)
|
||||
ifdef CONFIG_CC_IS_GCC
|
||||
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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user