archive mirror
 help / color / mirror / Atom feed
* [PATCH] Kbuild: Hide Clang's -Wempty-body behind W=1
@ 2018-10-16  2:14 Nathan Chancellor
  2018-10-17  4:48 ` Masahiro Yamada
  0 siblings, 1 reply; 3+ messages in thread
From: Nathan Chancellor @ 2018-10-16  2:14 UTC (permalink / raw)
  To: Masahiro Yamada, Michal Marek
  Cc: linux-kbuild, linux-kernel, Nick Desaulniers, Kees Cook,
	Nathan Chancellor

There are only a few instances of this warning in an arm64 allyesconfig
build but none of them appear useful. I believe the intention of the
warning is to avoid situations like this:

if (condition);

where the user really intended

if (condition)

However, these instances have already been caught by GCC's warning about
misleading indentation so the remaining warnings are about loops that
fall into one of three categories:

1. Execute a function unconditionally (avoiding a useless variable to
   hold the return value):

drivers/isdn/hisax/hfc_pci.c:131:34: warning: if statement has empty body
        if (Read_hfc(cs, HFCPCI_INT_S1));

2. Advancing a value to be used later on in the function like a pointer
   or a count:

drivers/atm/eni.c:244:48: warning: for loop has empty body
        for (order = 0; (1 << order) < *size; order++);

3. Busy waiting:

drivers/atm/zatm.c:513:7: warning: while loop has empty body

None of these uses are problematic or need to be addressed. Clang
suggests moving the semi-colon to the next line to silence these
warnings but that defeats the purpose of the compact nature of these
constructs so just hide the warning behind W=1 so its use can still be
audited but it won't polute a regular build.

Signed-off-by: Nathan Chancellor <>
 scripts/Makefile.extrawarn | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn
index cf6cd0ef6975..8709d9d6faf1 100644
--- a/scripts/Makefile.extrawarn
+++ b/scripts/Makefile.extrawarn
@@ -11,6 +11,7 @@
 # are not supported by all versions of the compiler
 # ==========================================================================
+KBUILD_CFLAGS += $(call cc-disable-warning, empty-body)
 KBUILD_CFLAGS += $(call cc-disable-warning, packed-not-aligned)
 ifeq ("$(origin W)", "command line")
@@ -32,6 +33,7 @@ warning-1 += $(call cc-option, -Wpacked-not-aligned)
 warning-1 += $(call cc-option, -Wstringop-truncation)
 warning-1 += $(call cc-disable-warning, missing-field-initializers)
 warning-1 += $(call cc-disable-warning, sign-compare)
+warning-1 += $(call cc-option, -Wempty-body)
 warning-2 := -Waggregate-return
 warning-2 += -Wcast-align

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-10-17  5:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-16  2:14 [PATCH] Kbuild: Hide Clang's -Wempty-body behind W=1 Nathan Chancellor
2018-10-17  4:48 ` Masahiro Yamada
2018-10-17  5:02   ` Nathan Chancellor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).