From: Vineet Gupta <vineet.gupta@linux.dev>
To: Nathan Chancellor <nathan@kernel.org>, Nicolas Schier <nsc@kernel.org>
Cc: Vineet Gupta <vineet.gupta@linux.dev>,
Borislav Petkov <bp@alien8.de>,
Peter Zijlstra <peterz@infradead.org>,
Jakub Jelinek <jakub@redhat.com>,
Julian Braha <julianbraha@gmail.com>,
Nick Desaulniers <ndesaulniers@google.com>,
Bill Wendling <morbo@google.com>,
Justin Stitt <justinstitt@google.com>,
linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org,
llvm@lists.linux.dev
Subject: [PATCH v2] kbuild: move gcc's -Wconstant-logical-operand to W=2
Date: Thu, 5 Nov 2026 09:57:45 -0800 [thread overview]
Message-ID: <20261105175748.3057520-1-vineet.gupta@linux.dev> (raw)
GCC 17 adds -Wconstant-logical-operand to -Wall. It warns when an operand
of && or || folds to a constant other than 0 or 1. Unlike clang's version,
it also checks constant left operands and operators that come from a
macro expansion. With CONFIG_WERROR=y, an x86 defconfig build fails in
prepare0:
arch/x86/include/asm/cpufeature.h:72:36: error: use of logical '&&' with constant operand '4194304' [-Werror=constant-logical-operand]
The warning is meant to catch && written for &. Kernel history has no
such catch. Of the 13 earlier kernel fixes for clang's version, only
commit dd7fe5d9fd6a ("rtc: max31335: Fix comparison in
max31335_volatile_reg()") fixed a bug that the warning found. Commit
394b52462020 ("drm/i915/gem: fix bitwise and logical AND mixup") fixed a
& written for &&, which the warning cannot see. The other fixes rewrote
correct code. In GCC's own tree, the warning found two sites since it
was added, and both were false positives.
Disable the warning for GCC unless W=2 is given. Keep clang's version,
which skips macros and constant left operands.
Suggested-by: Borislav Petkov <bp@alien8.de>
Link: https://lore.kernel.org/all/20261104160722.1637541-1-vineet.gupta@linux.dev/
Signed-off-by: Vineet Gupta <vineet.gupta@linux.dev>
---
v1 -> v2:
- Replace the four per-site fixes with this one change (Borislav, Peter)
- Link to v1: https://lore.kernel.org/all/20261104160722.1637541-1-vineet.gupta@linux.dev/
scripts/Kconfig.toolchain | 3 +++
scripts/Makefile.warn | 1 +
2 files changed, 4 insertions(+)
diff --git a/scripts/Kconfig.toolchain b/scripts/Kconfig.toolchain
index 2acbd40a38f1..1d68075f0469 100644
--- a/scripts/Kconfig.toolchain
+++ b/scripts/Kconfig.toolchain
@@ -233,6 +233,9 @@ config CC_OPT_WNO_FORMAT_OVERFLOW
config CC_OPT_WNO_STRINGOP_TRUNCATION
def_string "$(cc-option-str,-Wno-stringop-truncation)"
+config CC_OPT_WNO_CONSTANT_LOGICAL_OPERAND
+ def_string "$(cc-option-str,-Wno-constant-logical-operand)"
+
config CC_HAS_COUNTED_BY
bool
# clang needs to be at least 20.1.0 to avoid potential crashes
diff --git a/scripts/Makefile.warn b/scripts/Makefile.warn
index 556fa249ca07..03b677bdbb0a 100644
--- a/scripts/Makefile.warn
+++ b/scripts/Makefile.warn
@@ -167,6 +167,7 @@ endif
ifdef CONFIG_CC_IS_GCC
KBUILD_CFLAGS += -Wno-maybe-uninitialized
+KBUILD_CFLAGS += $(CONFIG_CC_OPT_WNO_CONSTANT_LOGICAL_OPERAND)
endif
endif
--
2.53.0-Meta
next reply other threads:[~2026-11-05 17:58 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-05 17:57 Vineet Gupta [this message]
2026-11-05 18:03 ` Nick Desaulniers
2026-11-05 19:45 ` Nathan Chancellor
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261105175748.3057520-1-vineet.gupta@linux.dev \
--to=vineet.gupta@linux.dev \
--cc=bp@alien8.de \
--cc=jakub@redhat.com \
--cc=julianbraha@gmail.com \
--cc=justinstitt@google.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=morbo@google.com \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=nsc@kernel.org \
--cc=peterz@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®