diff options
author | Justin Chadwell <justin.chadwell@arm.com> | 2019-09-18 14:13:42 +0100 |
---|---|---|
committer | Madhukar Pappireddy <madhukar.pappireddy@arm.com> | 2019-11-19 08:53:21 -0600 |
commit | d7b4cd4111ab4cfde60f693a789a290870c02035 (patch) | |
tree | 41b110018b3ff623d20cef2ca29a71185f5d2fa1 | |
parent | b7f6525db642d533327403ff8130eb91190f2e98 (diff) | |
download | platform_external_arm-trusted-firmware-d7b4cd4111ab4cfde60f693a789a290870c02035.tar.gz platform_external_arm-trusted-firmware-d7b4cd4111ab4cfde60f693a789a290870c02035.tar.bz2 platform_external_arm-trusted-firmware-d7b4cd4111ab4cfde60f693a789a290870c02035.zip |
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>
-rw-r--r-- | Makefile | 11 | ||||
-rw-r--r-- | drivers/mentor/i2c/mi2cv.c | 4 | ||||
-rw-r--r-- | plat/xilinx/zynqmp/pm_service/pm_api_ioctl.c | 2 |
3 files changed, 8 insertions, 9 deletions
@@ -246,7 +246,6 @@ WARNING1 += -Wunused-const-variable WARNING2 := -Waggregate-return WARNING2 += -Wcast-align WARNING2 += -Wnested-externs -WARNING2 += -Wlogical-op WARNING3 := -Wbad-function-cast WARNING3 += -Wcast-qual @@ -268,13 +267,13 @@ endif # 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) diff --git a/drivers/mentor/i2c/mi2cv.c b/drivers/mentor/i2c/mi2cv.c index 1cdcf7478..b0270c955 100644 --- a/drivers/mentor/i2c/mi2cv.c +++ b/drivers/mentor/i2c/mi2cv.c @@ -81,14 +81,14 @@ static void mentor_i2c_interrupt_clear(void) udelay(1); } -static int mentor_i2c_interrupt_get(void) +static bool mentor_i2c_interrupt_get(void) { uint32_t reg; /* get the interrupt flag bit */ reg = mmio_read_32((uintptr_t)&base->control); reg &= I2C_CONTROL_IFLG; - return reg && I2C_CONTROL_IFLG; + return (reg != 0U); } static int mentor_i2c_wait_interrupt(void) diff --git a/plat/xilinx/zynqmp/pm_service/pm_api_ioctl.c b/plat/xilinx/zynqmp/pm_service/pm_api_ioctl.c index 44acb4bd5..60e80d907 100644 --- a/plat/xilinx/zynqmp/pm_service/pm_api_ioctl.c +++ b/plat/xilinx/zynqmp/pm_service/pm_api_ioctl.c @@ -58,7 +58,7 @@ static enum pm_ret_status pm_ioctl_set_rpu_oper_mode(unsigned int mode) { unsigned int val; - if (mmio_read_32(CRL_APB_RST_LPD_TOP) && CRL_APB_RPU_AMBA_RESET) + if (mmio_read_32(CRL_APB_RST_LPD_TOP) & CRL_APB_RPU_AMBA_RESET) return PM_RET_ERROR_ACCESS; val = mmio_read_32(ZYNQMP_RPU_GLBL_CNTL); |