[lkml]   [2018]   [Oct]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
Subject[PATCH] Kbuild: Hide Clang's -Wempty-body behind W=1
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
 \ /
  Last update: 2018-10-16 04:16    [W:0.041 / U:31.400 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site