Messages in this thread | | | From | Jon Flatley <> | Date | Wed, 6 Feb 2019 09:32:12 -0800 | Subject | Re: [PATCH] kbuild, LLVMLinux: Don't suppress format warnings |
| |
On Wed, Feb 6, 2019 at 8:45 AM Nathan Chancellor <natechancellor@gmail.com> wrote: > > On Tue, Feb 05, 2019 at 05:26:05PM +0900, Masahiro Yamada wrote: > > On Sat, Feb 2, 2019 at 6:10 AM <jflat@chromium.org> wrote: > > > > > > From: Jon Flatley <jflat@chromium.org> > > > > > > gcc produces format warnings that clang suppresses. To keep behavior > > > consistent between gcc and clang, don't suppress format warnings in > > > clang. > > > > > > Signed-off-by: Jon Flatley <jflat@chromium.org> > > > --- > > > > Applied to linux-kbuild. > > Thanks. > > > > > > Hi Jon and Masahiro, > > Just as a heads up, this introduces a ton of warnings (duh). Isn't the > typical plan behind turning on warnings that were disabled to build with > 'W=', fix them all, then turn them on so as not to pollute the build? > > Log file: https://gist.github.com/443db156e56cd3c0f6b21d9d77728d80 > > Note a big chunk of them come from one scnprintf call in > include/linux/usb/wusb.h but still, there are many other warnings that > make quite a bit of noise. Some seem relatively easy to fix, which I > suppose I will try to tackle soon. > > Thanks, > Nathan >
Hi Nathan,
This was definitely not my intention. I noticed the added warnings this morning and was considering calling for a revert on this patch.
The intent was to match the behavior of gcc, as it has -Wformat enabled. It was rather naive of me to assume the behavior of -Wformat would be the same in both gcc and clang. Indeed, it seems gcc is more permissive about what format substitutions it allows.
For example passing int to the "%hu" format specifier is fine in gcc under -Wformat but produces a warning in clang. Maybe this was the motivation for adding -Wno-format to clang in the first place. This difference is puzzling to me, and I wonder if it's by design.
Considering the whole point of this patch was to sync up this behavior between gcc and clang I am OK with reverting this.
Thanks, Jon
> > > > > > > scripts/Makefile.extrawarn | 1 - > > > 1 file changed, 1 deletion(-) > > > > > > diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn > > > index 768306add591..94daf4e1fc73 100644 > > > --- a/scripts/Makefile.extrawarn > > > +++ b/scripts/Makefile.extrawarn > > > @@ -68,7 +68,6 @@ else > > > ifdef CONFIG_CC_IS_CLANG > > > KBUILD_CFLAGS += $(call cc-disable-warning, initializer-overrides) > > > KBUILD_CFLAGS += $(call cc-disable-warning, unused-value) > > > -KBUILD_CFLAGS += $(call cc-disable-warning, format) > > > KBUILD_CFLAGS += $(call cc-disable-warning, sign-compare) > > > KBUILD_CFLAGS += $(call cc-disable-warning, format-zero-length) > > > KBUILD_CFLAGS += $(call cc-disable-warning, uninitialized) > > > -- > > > 2.20.1.611.gfbb209baf1-goog > > > > > > > > > -- > > Best Regards > > Masahiro Yamada
| |