Skip to content

Commit 21f9c8a

Browse files
committed
Revert "Makefile.extrawarn: re-enable -Wformat for clang"
This reverts commit 258fafc. The clang -Wformat warning is terminally broken, and the clang people can't seem to get their act together. This test program causes a warning with clang: #include <stdio.h> int main(int argc, char **argv) { printf("%hhu\n", 'a'); } resulting in t.c:5:19: warning: format specifies type 'unsigned char' but the argument has type 'int' [-Wformat] printf("%hhu\n", 'a'); ~~~~ ^~~ %d and apparently clang people consider that a feature, because they don't want to face the reality of how either C character constants, C arithmetic, and C varargs functions work. The rest of the world just shakes their head at that kind of incompetence, and turns off -Wformat for clang again. And no, the "you should use a pointless cast to shut this up" is not a valid answer. That warning should not exist in the first place, or at least be optinal with some "-Wformat-me-harder" kind of option. [ Admittedly, there's also very little reason to *ever* use '%hh[ud]' in C, but what little reason there is is entirely about 'I want to see only the low 8 bits of the argument'. So I would suggest nobody ever use that format in the first place, but if they do, the clang behavious is simply always wrong. Because '%hhu' takes an 'int'. It's that simple. ] Reported-by: Sudip Mukherjee (Codethink) <sudipm.mukherjee@gmail.com> Cc: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent ffcf9c5 commit 21f9c8a

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

scripts/Makefile.extrawarn

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ else
4747

4848
ifdef CONFIG_CC_IS_CLANG
4949
KBUILD_CFLAGS += -Wno-initializer-overrides
50+
KBUILD_CFLAGS += -Wno-format
5051
KBUILD_CFLAGS += -Wno-sign-compare
5152
KBUILD_CFLAGS += -Wno-format-zero-length
5253
KBUILD_CFLAGS += $(call cc-disable-warning, pointer-to-enum-cast)

0 commit comments

Comments
 (0)