Re: [PATCH] scsi: FlashPoint: Remove unnecessary parentheses

From: Nathan Chancellor
Date: Fri Sep 21 2018 - 14:17:54 EST


On Fri, Sep 21, 2018 at 09:19:40AM -0600, Khalid Aziz wrote:
> On 09/20/2018 03:10 PM, Nathan Chancellor wrote:
> > Clang warns when multiple pairs of parentheses are used for a single
> > conditional statement.
> >
> > In file included from drivers/scsi/BusLogic.c:57:
> > drivers/scsi/FlashPoint.c:2947:34: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
> > if ((currSCCB->Sccb_scsistat == SELECT_SN_ST)) {
> > ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
> > drivers/scsi/FlashPoint.c:2947:34: note: remove extraneous parentheses around the comparison to silence this warning
> > if ((currSCCB->Sccb_scsistat == SELECT_SN_ST)) {
> > ~ ^ ~
> > drivers/scsi/FlashPoint.c:2947:34: note: use '=' to turn this equality comparison into an assignment
> > if ((currSCCB->Sccb_scsistat == SELECT_SN_ST)) {
> > ^~
> > =
> > drivers/scsi/FlashPoint.c:2956:39: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
> > else if ((currSCCB->Sccb_scsistat ==
> > ~~~~~~~~~~~~~~~~~~~~~~~~^~
> > drivers/scsi/FlashPoint.c:2956:39: note: remove extraneous parentheses around the comparison to silence this warning
> > else if ((currSCCB->Sccb_scsistat ==
> > ~ ^
> > drivers/scsi/FlashPoint.c:2956:39: note: use '=' to turn this equality comparison into an assignment
> > else if ((currSCCB->Sccb_scsistat ==
> > ^~
> > =
> > 2 warnings generated.
> >
> > Link: https://github.com/ClangBuiltLinux/linux/issues/156
> > Signed-off-by: Nathan Chancellor <natechancellor@xxxxxxxxx>
> > ---
> > drivers/scsi/FlashPoint.c | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
>
> There are more places in this file with extraneous parentheses, for example:
>
> 952 if ((RD_HARPOON(ioport + hp_vendor_id_1) != ORION_VEND_1))
> 953 return (int)FAILURE;
> 954
> 955 if ((RD_HARPOON(ioport + hp_device_id_0) != ORION_DEV_0))
> 956 return (int)FAILURE;
> 957
> 958 if ((RD_HARPOON(ioport + hp_device_id_1) != ORION_DEV_1))
>
> Wonder why the compiler does not complain about these, but this patch is
> good for now. I will clean up the rest in another patch.
>
> James, Martin, please pull this patch into the scsi tree.
>
> Acked-by: Khalid Aziz <khalid@xxxxxxxxxxxxxx>

Hi Khalid,

Clang only warns about this construct when the left hand is a variable
because it thinks that an assignment may have been intended so macros
and functions don't trigger it.

Thank you for the review, I appreciate it,
Nathan