Enable -Wlogical-op always
-Wlogical-op prevents common errors with using numerical constants where
a boolean one is expected as well as when the operands of a logical
operator are the same. While these are perfectly valid behavior, they
can be a sign that something is slightly off.
This patch adds this warning to gcc and it's closest equivalent to
clang, while also fixing any warnings that enabling them causes.
Change-Id: Iabadfc1e6ee0c44eef6685a23b0aed8abef8ce89
Signed-off-by: Justin Chadwell <justin.chadwell@arm.com>
diff --git a/Makefile b/Makefile
index 0582061..d634b33 100644
--- a/Makefile
+++ b/Makefile
@@ -246,7 +246,6 @@
WARNING2 := -Waggregate-return
WARNING2 += -Wcast-align
WARNING2 += -Wnested-externs
-WARNING2 += -Wlogical-op
WARNING3 := -Wbad-function-cast
WARNING3 += -Wcast-qual
@@ -268,13 +267,13 @@
# Compiler specific warnings
ifeq ($(findstring clang,$(notdir $(CC))),)
# not using clang
-WARNINGS += -Wunused-but-set-variable \
- -Wmaybe-uninitialized \
- -Wpacked-bitfield-compat \
- -Wshift-overflow=2
+WARNINGS += -Wunused-but-set-variable -Wmaybe-uninitialized \
+ -Wpacked-bitfield-compat -Wshift-overflow=2 \
+ -Wlogical-op
else
# using clang
-WARNINGS += -Wshift-overflow -Wshift-sign-overflow
+WARNINGS += -Wshift-overflow -Wshift-sign-overflow \
+ -Wlogical-op-parentheses
endif
ifneq (${E},0)