Re: [PATCH] x86/syscalls: Mark expected switch fall-throughs

From: Gustavo A. R. Silva
Date: Tue Nov 28 2017 - 15:25:38 EST



Quoting Thomas Gleixner <tglx@xxxxxxxxxxxxx>:

On Tue, 28 Nov 2017, Alan Cox wrote:

> I have no idea who came up with that brilliant idea of parsing comments in
> the code. It's so simple to make this parser completely fail that it's not

Stephen Johnson (author of the V7 portable C compiler), which is where
it's from (the lint tool). He also wrote yacc so he does know a bit about
parsers 8).

I don't doubt that.

> even funny anymore.

The notation in question has been standard in tools like lint since the
end of the 1970s

Fair enough.

Still that does not make the GCC implementation which defaults to take 'any
comment' as valid any better and does not solve other parsing issues which
have been pointed out in various GCC bugs. Using the macro annotation is
distinct and has no ifs and buts.


The thing about taking 'any comment' as valid is false if you add the following to your Makefile:

KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough)

This option takes the following comments as valid:

/* fall through */
/* Fall through */
/* fall through - ... */
/* Fall through - ... */

Comments as fallthru, fallthrough, FALLTHRU are invalid.

And of course if you intentionally change the option to:

KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough=1)

it means that you obviously want to ignore any warning.

Thanks
--
Gustavo A. R. Silva