| From 6e8d666e925333c55378e8d5540a8a9ee0eea9c5 Mon Sep 17 00:00:00 2001 |
| From: Linus Torvalds <torvalds@linux-foundation.org> |
| Date: Wed, 27 Jul 2016 13:17:41 -0700 |
| Subject: Disable "maybe-uninitialized" warning globally |
| |
| From: Linus Torvalds <torvalds@linux-foundation.org> |
| |
| commit 6e8d666e925333c55378e8d5540a8a9ee0eea9c5 upstream. |
| |
| Several build configurations had already disabled this warning because |
| it generates a lot of false positives. But some had not, and it was |
| still enabled for "allmodconfig" builds, for example. |
| |
| Looking at the warnings produced, every single one I looked at was a |
| false positive, and the warnings are frequent enough (and big enough) |
| that they can easily hide real problems that you don't notice in the |
| noise generated by -Wmaybe-uninitialized. |
| |
| The warning is good in theory, but this is a classic case of a warning |
| that causes more problems than the warning can solve. |
| |
| If gcc gets better at avoiding false positives, we may be able to |
| re-enable this warning. But as is, we're better off without it, and I |
| want to be able to see the *real* warnings. |
| |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| Makefile | 7 ++++--- |
| 1 file changed, 4 insertions(+), 3 deletions(-) |
| |
| --- a/Makefile |
| +++ b/Makefile |
| @@ -368,7 +368,7 @@ AFLAGS_MODULE = |
| LDFLAGS_MODULE = |
| CFLAGS_KERNEL = |
| AFLAGS_KERNEL = |
| -CFLAGS_GCOV = -fprofile-arcs -ftest-coverage -fno-tree-loop-im -Wno-maybe-uninitialized |
| +CFLAGS_GCOV = -fprofile-arcs -ftest-coverage -fno-tree-loop-im |
| |
| |
| # Use USERINCLUDE when you must reference the UAPI directories only. |
| @@ -616,12 +616,13 @@ ARCH_CFLAGS := |
| include arch/$(SRCARCH)/Makefile |
| |
| KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,) |
| +KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,) |
| |
| ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE |
| -KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,) |
| +KBUILD_CFLAGS += -Os |
| else |
| ifdef CONFIG_PROFILE_ALL_BRANCHES |
| -KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,) |
| +KBUILD_CFLAGS += -O2 |
| else |
| KBUILD_CFLAGS += -O2 |
| endif |