Re: [PATCH] can: mark expected switch fall-throughs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 14/02/2019 15:37:26-0600, Gustavo A. R. Silva wrote:
> 
> 
> On 1/30/19 2:11 AM, Nicolas.Ferre@xxxxxxxxxxxxx wrote:
> > On 29/01/2019 at 19:06, Gustavo A. R. Silva wrote:
> >> In preparation to enabling -Wimplicit-fallthrough, mark switch cases
> >> where we are expecting to fall through.
> >>
> >> This patch fixes the following warnings:
> >>
> >> drivers/net/can/peak_canfd/peak_pciefd_main.c:668:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
> >> drivers/net/can/spi/mcp251x.c:875:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
> >> drivers/net/can/usb/peak_usb/pcan_usb.c:422:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
> >> drivers/net/can/at91_can.c:895:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
> >> drivers/net/can/at91_can.c:953:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
> >> drivers/net/can/usb/peak_usb/pcan_usb.c: In function ‘pcan_usb_decode_error’:
> >> drivers/net/can/usb/peak_usb/pcan_usb.c:422:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
> >>     if (n & PCAN_USB_ERROR_BUS_LIGHT) {
> >>        ^
> >> drivers/net/can/usb/peak_usb/pcan_usb.c:428:2: note: here
> >>    case CAN_STATE_ERROR_WARNING:
> >>    ^~~~
> >>
> >> Warning level 3 was used: -Wimplicit-fallthrough=3
> >>
> >> This patch is part of the ongoing efforts to enabling
> >> -Wimplicit-fallthrough.
> >>
> >> Notice that in some cases spelling mistakes were fixed.
> >> In other cases, the /* fall through */ comment is placed
> >> at the bottom of the case statement, which is what GCC
> >> is expecting to find.
> >>
> >> Signed-off-by: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx>
> >> ---
> >>   drivers/net/can/at91_can.c                    | 6 ++++--
> > 
> > For this one:
> > Acked-by: Nicolas Ferre <nicolas.ferre@xxxxxxxxxxxxx>
> > 
> 
> Thanks, Nicolas.
> 

I though I had a déjà vu but you actually sent the at91 part twice.

> Dave:
> 
> I wonder if you can take this patch.
> 
> Thanks
> --
> Gustavo
> 
> >>   drivers/net/can/peak_canfd/peak_pciefd_main.c | 2 +-
> >>   drivers/net/can/spi/mcp251x.c                 | 3 ++-
> >>   drivers/net/can/usb/peak_usb/pcan_usb.c       | 2 +-
> >>   4 files changed, 8 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/drivers/net/can/at91_can.c b/drivers/net/can/at91_can.c
> >> index d98c69045b17..1718c20f9c99 100644
> >> --- a/drivers/net/can/at91_can.c
> >> +++ b/drivers/net/can/at91_can.c
> >> @@ -902,7 +902,8 @@ static void at91_irq_err_state(struct net_device *dev,
> >>   				CAN_ERR_CRTL_TX_WARNING :
> >>   				CAN_ERR_CRTL_RX_WARNING;
> >>   		}
> >> -	case CAN_STATE_ERROR_WARNING:	/* fallthrough */
> >> +		/* fall through */
> >> +	case CAN_STATE_ERROR_WARNING:
> >>   		/*
> >>   		 * from: ERROR_ACTIVE, ERROR_WARNING
> >>   		 * to  : ERROR_PASSIVE, BUS_OFF
> >> @@ -951,7 +952,8 @@ static void at91_irq_err_state(struct net_device *dev,
> >>   		netdev_dbg(dev, "Error Active\n");
> >>   		cf->can_id |= CAN_ERR_PROT;
> >>   		cf->data[2] = CAN_ERR_PROT_ACTIVE;
> >> -	case CAN_STATE_ERROR_WARNING:	/* fallthrough */

Seriously, for that one, you should fix the compiler. The fall through
is not implicit, it is actually quite explicit and the warning is simply
wrong.

Also, the gcc documentation says that -Wimplicit-fallthrough=3
recognizes /* fallthrough */ as a proper fall through comment (and I
tested with gcc 8.2).

The matching regex is [ \t.!]*([Ee]lse,? |[Ii]ntentional(ly)? )?
fall(s | |-)?thr(ough|u)[ \t.!]*(-[^\n\r]*)?

-- 
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux