linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Neil Horman <nhorman@tuxdriver.com>
To: Joe Perches <joe@perches.com>
Cc: Vlad Yasevich <vyasevich@gmail.com>,
	Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	linux-sctp@vger.kernel.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] net: sctp: Rename fallthrough label to unhandled
Date: Thu, 1 Aug 2019 06:50:51 -0400	[thread overview]
Message-ID: <20190801105051.GA11487@hmswarspite.think-freely.org> (raw)
In-Reply-To: <d68403ce9f7e8a68fff09d6b17e5d1327eb1e12d.camel@perches.com>

On Wed, Jul 31, 2019 at 03:23:46PM -0700, Joe Perches wrote:
> 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:
> > > On Wed, 2019-07-31 at 08:16 -0400, Neil Horman wrote:
> > > > On Wed, Jul 31, 2019 at 04:32:43AM -0700, Joe Perches wrote:
> > > > > On Wed, 2019-07-31 at 07:19 -0400, Neil Horman wrote:
> > > > > > On Tue, Jul 30, 2019 at 10:04:37PM -0700, Joe Perches wrote:
> > > > > > > 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!...
You can say that if you want, but you made the point that your think the macro
as you have written is more readable.  You example illustrates though that /*
fallthrough */ is a pretty common comment, and not prefixing it makes it look
like someone didn't add a comment that they meant to.  The __ prefix is standard
practice for defining macros to attributes (212 instances of it by my count).  I
don't mind rewriting the goto labels at all, but I think consistency is
valuable.

Neil

> 
> 
> 

  reply	other threads:[~2019-08-01 10:51 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-31  5:04 [PATCH] net: sctp: Rename fallthrough label to unhandled Joe Perches
2019-07-31  5:35 ` [RFC PATCH] compiler_attributes.h: Add 'fallthrough' pseudo keyword for switch/case use Joe Perches
2019-07-31  9:02   ` Peter Zijlstra
2019-07-31  9:34     ` Joe Perches
2019-07-31 17:14   ` Pavel Machek
2019-07-31 17:51     ` Joe Perches
2019-07-31 18:24       ` hpa
2019-07-31 18:48         ` Peter Zijlstra
2019-07-31 20:02           ` Kees Cook
2019-07-31 20:59             ` Miguel Ojeda
2019-07-31 22:07               ` Joe Perches
2019-08-01  0:00                 ` Miguel Ojeda
2019-08-01 12:25             ` Peter Zijlstra
2019-08-15 18:15             ` Kees Cook
2019-08-15 22:31               ` Kees Cook
2019-09-16 22:19               ` treewide replacement of fallthrough comments with "fallthrough" macro (was Re: [RFC PATCH] compiler_attributes.h: Add 'fallthrough' pseudo keyword for switch/case use) Kees Cook
2019-09-17 22:26                 ` Joe Perches
2019-09-17 23:38                   ` Kees Cook
2019-07-31 21:01           ` [RFC PATCH] compiler_attributes.h: Add 'fallthrough' pseudo keyword for switch/case use hpa
2019-07-31 23:55             ` Miguel Ojeda
2019-08-01  6:10               ` hpa
2019-08-01  7:52                 ` Joe Perches
2019-08-01 12:24                 ` Peter Zijlstra
2019-08-01 20:09                   ` hpa
2019-08-01 20:26                     ` Miguel Ojeda
2019-08-01 20:47                       ` Joe Perches
2019-08-02 11:00                       ` Neil Horman
2019-08-02 12:34                         ` Pavel Machek
2019-08-02 16:09                           ` Kees Cook
2019-08-02 16:16                             ` Joe Perches
2019-08-04 18:01   ` Joe Perches
2019-08-04 18:09     ` Linus Torvalds
2019-08-04 19:38       ` Miguel Ojeda
2019-08-05  0:39       ` Joe Perches
2019-08-05  1:18         ` Nathan Chancellor
2019-08-05  2:01           ` Joe Perches
2019-07-31 11:19 ` [PATCH] net: sctp: Rename fallthrough label to unhandled Neil Horman
2019-07-31 11:32   ` Joe Perches
2019-07-31 12:16     ` Neil Horman
2019-07-31 16:35       ` Joe Perches
2019-07-31 20:58         ` Neil Horman
2019-07-31 22:23           ` Joe Perches
2019-08-01 10:50             ` Neil Horman [this message]
2019-08-01 17:42               ` Joe Perches
2019-08-01 20:48                 ` Neil Horman
2019-08-05 11:49                 ` David Laight
2019-08-02 17:47       ` Joe Perches
2019-08-02 23:19         ` David Miller
2019-08-02 23:26           ` Joe Perches
2019-08-03 18:01           ` Joe Perches
2019-08-04 19:26           ` Neil Horman
2019-08-02 17:50 ` Neil Horman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190801105051.GA11487@hmswarspite.think-freely.org \
    --to=nhorman@tuxdriver.com \
    --cc=davem@davemloft.net \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sctp@vger.kernel.org \
    --cc=marcelo.leitner@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=vyasevich@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).