Re: [PATCH] net: sctp: Rename fallthrough label to unhandled
From: Joe Perches <joe@perches.com>
Date: 2019-07-31 22:23:52
Also in:
linux-sctp, lkml
On Wed, 2019-07-31 at 16:58 -0400, Neil Horman wrote:
On Wed, Jul 31, 2019 at 09:35:31AM -0700, Joe Perches wrote:quoted
On Wed, 2019-07-31 at 08:16 -0400, Neil Horman wrote:quoted
On Wed, Jul 31, 2019 at 04:32:43AM -0700, Joe Perches wrote:quoted
On Wed, 2019-07-31 at 07:19 -0400, Neil Horman wrote:quoted
On Tue, Jul 30, 2019 at 10:04:37PM -0700, Joe Perches wrote:quoted
fallthrough may become a pseudo reserved keyword so this only use of fallthrough is better renamed to allow it. Signed-off-by: Joe Perches <joe@perches.com>Are you referring to the __attribute__((fallthrough)) statement that gcc supports? If so the compiler should by all rights be able to differentiate between a null statement attribute and a explicit goto and label without the need for renaming here. Or are you referring to something else?Hi. I sent after this a patch that adds # define fallthrough __attribute__((__fallthrough__)) https://lore.kernel.org/patchwork/patch/1108577/ So this rename is a prerequisite to adding this #define.why not just define __fallthrough instead, like we do for all the other attributes we alias (i.e. __read_mostly, __protected_by, __unused, __exception, etc)Because it's not as intelligible when used as a statement.I think thats somewhat debatable. __fallthrough to me looks like an internal macro, whereas fallthrough looks like a comment someone forgot to /* */
I'd rather see:
switch (foo) {
case FOO:
bar |= baz;
fallthrough;
case BAR:
bar |= qux;
break;
default:
error();
}
than
switch (foo) {
case FOO:
bar |= baz;
__fallthrough;
case BAR:
bar |= qux;
break;
default:
error();
}
or esoecially
switch (foo) {
case FOO:
bar |= baz;
/* fallthrough
*/;
case BAR:
bar |= qux;
break;
default:
error();
}
but <shrug>, bikeshed ahoy!...