Message ID | 20190829120215.1977-1-msuchanek@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Makefile: Convert -Wimplicit-fallthrough to -Wimplicit-fallthrough=2 | expand |
On Thu, 2019-08-29 at 14:02 +0200, Michal Suchanek wrote: > In particular the default value of 3 does not match the comments like > /* falls through to do foobar */ How many comments are there like this in the kernel? Also you have to deal with gcc/clang differences. As far as I know, clang doesn't take a value for this.
On Fri, Aug 30, 2019 at 1:09 PM Joe Perches <joe@perches.com> wrote: > > On Thu, 2019-08-29 at 14:02 +0200, Michal Suchanek wrote: > > In particular the default value of 3 does not match the comments like > > /* falls through to do foobar */ > > How many comments are there like this in the kernel? +1 Given we are trying to move to attr-only and therefore -Wimplicit-fallthrough=5, going back a level needs to be backed by a good argument. It would be way better to fix those comments instead. Cheers, Miguel
On 8/29/19 7:02 AM, Michal Suchanek wrote: > From gcc documentation: > > -Wimplicit-fallthrough=0 > disables the warning altogether. > -Wimplicit-fallthrough=1 > matches .* regular expression, any comment is used as fallthrough comment. > -Wimplicit-fallthrough=2 > case insensitively matches .*falls?[ \t-]*thr(ough|u).* regular expression. > -Wimplicit-fallthrough=3 > case sensitively matches one of the following regular expressions: > -fallthrough > @fallthrough@ > lint -fallthrough[ \t]* > [ \t.!]*(ELSE,? |INTENTIONAL(LY)? )? > FALL(S | |-)?THR(OUGH|U)[ \t.!]*(-[^\n\r]*)? > [ \t.!]*(Else,? |Intentional(ly)? )? > Fall((s | |-)[Tt]|t)hr(ough|u)[ \t.!]*(-[^\n\r]*)? > [ \t.!]*([Ee]lse,? |[Ii]ntentional(ly)? )? > fall(s | |-)?thr(ough|u)[ \t.!]*(-[^\n\r]*)? > -Wimplicit-fallthrough=4 > case sensitively matches one of the following regular expressions: > -fallthrough > @fallthrough@ > lint -fallthrough[ \t]* > [ \t]*FALLTHR(OUGH|U)[ \t]* > -Wimplicit-fallthrough=5 > doesn’t recognize any comments as fallthrough comments, only attributes disable the warning. > > In particular the default value of 3 does not match the comments like > /* falls through to do foobar */ > generating suprious warnings on properly annotated code. > NACK How many of those case do you see? if any... In any case, those comments can be easily transformed to: /* falls through - to do foobar */ like in this case: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d2d833e0bf2bad221a955626b942b38312630894 Also, notice that code in linux-next is already ahead... : https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=e2079e93f562c7f7a030eb7642017ee5eabaaa10 -- Gustavo
diff --git a/Makefile b/Makefile index f125625efd60..641ec413c2a6 100644 --- a/Makefile +++ b/Makefile @@ -846,7 +846,7 @@ NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) KBUILD_CFLAGS += -Wdeclaration-after-statement # Warn about unmarked fall-throughs in switch statement. -KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough,) +KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough=2,) # Variable Length Arrays (VLAs) should not be used anywhere in the kernel KBUILD_CFLAGS += -Wvla
From gcc documentation: -Wimplicit-fallthrough=0 disables the warning altogether. -Wimplicit-fallthrough=1 matches .* regular expression, any comment is used as fallthrough comment. -Wimplicit-fallthrough=2 case insensitively matches .*falls?[ \t-]*thr(ough|u).* regular expression. -Wimplicit-fallthrough=3 case sensitively matches one of the following regular expressions: -fallthrough @fallthrough@ lint -fallthrough[ \t]* [ \t.!]*(ELSE,? |INTENTIONAL(LY)? )? FALL(S | |-)?THR(OUGH|U)[ \t.!]*(-[^\n\r]*)? [ \t.!]*(Else,? |Intentional(ly)? )? Fall((s | |-)[Tt]|t)hr(ough|u)[ \t.!]*(-[^\n\r]*)? [ \t.!]*([Ee]lse,? |[Ii]ntentional(ly)? )? fall(s | |-)?thr(ough|u)[ \t.!]*(-[^\n\r]*)? -Wimplicit-fallthrough=4 case sensitively matches one of the following regular expressions: -fallthrough @fallthrough@ lint -fallthrough[ \t]* [ \t]*FALLTHR(OUGH|U)[ \t]* -Wimplicit-fallthrough=5 doesn’t recognize any comments as fallthrough comments, only attributes disable the warning. In particular the default value of 3 does not match the comments like /* falls through to do foobar */ generating suprious warnings on properly annotated code. Signed-off-by: Michal Suchanek <msuchanek@suse.de> --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)