Re: [PATCH] usbip: Use fallthrough pseudo-keyword

From: Shuah Khan
Date: Wed Jul 08 2020 - 10:42:30 EST


On 7/8/20 4:16 AM, Julia Lawall wrote:


On Tue, 7 Jul 2020, Joe Perches wrote:

On Tue, 2020-07-07 at 14:06 -0600, Shuah Khan wrote:
On 7/7/20 1:52 PM, Gustavo A. R. Silva wrote:
Replace the existing /* fall through */ comments and its variants with
the new pseudo-keyword macro fallthrough[1]. Also, remove unnecessary
fall-through markings when it is the case.

[1] https://www.kernel.org/doc/html/latest/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through


Is fallthrough syntax supported on our min gcc version?

No. Introduced in gcc 7.

Does checkpatch or coccicheck catch these cases?

Kinda. checkpatch isn't very good at it.
I _believe_, though I'm not at all sure,
that coccinelle can find these.

I would not guarantee anything about the support of Coccinelle for switch.
Coccinelle does now have the ability to match on comments. So since there
is a distinct comment that it is to be removed, it might be possible to do
that part automatically.

Maybe it would have to look something like this:

@r1@
comments c : script:python() { code to recognize the comment };
statement S;
@@

S@c
+ fallthrough(); //or whatever is wanted

@@
statement r1.S;
@@

- S
- fallthrough();
+ S
+ fallthrough();

The second rule probably looks pretty strange, but the goal is to remove
the comments between S and fallthrough();

There is an example demos/comments.cocci that shows how to access the
comment information using both ocaml and python.


Thanks Julia. Maybe this is a way to address all of the cases. I am a
bit concerned about min gcc which is 4.8 and the fallthrough syntax
support is in gcc 7

-- Shuah