From: Kees Cook <keescook@chromium.org>
To: Joe Perches <joe@perches.com>
Cc: hpa@zytor.com, Peter Zijlstra <peterz@infradead.org>,
Pavel Machek <pavel@ucw.cz>,
Linus Torvalds <torvalds@linux-foundation.org>,
Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>,
Borislav Petkov <bp@alien8.de>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>,
"Gustavo A . R . Silva" <gustavo@embeddedor.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Kan Liang <kan.liang@linux.intel.com>,
Namhyung Kim <namhyung@kernel.org>, Jiri Olsa <jolsa@redhat.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Shawn Landden <shawn@git.icu>,
x86@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH] compiler_attributes.h: Add 'fallthrough' pseudo keyword for switch/case use
Date: Thu, 15 Aug 2019 11:15:53 -0700 [thread overview]
Message-ID: <201908151049.809B9AFBA9@keescook> (raw)
In-Reply-To: <201907311301.EC1D84F@keescook>
On Wed, Jul 31, 2019 at 01:02:07PM -0700, Kees Cook wrote:
> On Wed, Jul 31, 2019 at 08:48:32PM +0200, Peter Zijlstra wrote:
> > On Wed, Jul 31, 2019 at 11:24:36AM -0700, hpa@zytor.com wrote:
> > > >> > +/*
> > > >> > + * Add the pseudo keyword 'fallthrough' so case statement blocks
> > > >> > + * must end with any of these keywords:
> > > >> > + * break;
> > > >> > + * fallthrough;
> > > >> > + * goto <label>;
> > > >> > + * return [expression];
> > > >> > + *
> > > >> > + * gcc: >https://gcc.gnu.org/onlinedocs/gcc/Statement-Attributes.html#Statement-Attributes
> > > >> > + */
> > > >> > +#if __has_attribute(__fallthrough__)
> > > >> > +# define fallthrough __attribute__((__fallthrough__))
> > > >> > +#else
> > > >> > +# define fallthrough do {} while (0) /* fallthrough */
> > > >> > +#endif
> > > >> > +
> >
> > > If the comments are stripped, how would the compiler see them to be
> > > able to issue a warning? I would guess that it is retained or replaced
> > > with some other magic token.
> >
> > Everything that has the warning (GCC-7+/CLANG-9) has that attribute.
>
> I'd like to make sure we don't regress Coverity most of all. If the
> recent updates to the Coverity scanner include support for the attribute
> now, then I'm all for it. :)
I want to recant my position on Coverity coverage being a requirement
here. While I was originally concerned about suddenly adding thousands
more warnings to Coverity scans (if it doesn't support the flag --
I should know soon), it's been made clear to me we're now at the point
where this is about to happen for Clang instead (since _it_ doesn't
support the comment-style marking and never will but is about to gain
C support[1] for the detection -- it only had C++ before).
With that out of the way, yes, let's do a mass conversion. As mentioned
before, I think "fallthrough;" should be used here (to match "break;").
Let's fork the C language. :)
-Kees
[1] https://reviews.llvm.org/D64838
--
Kees Cook
next prev parent reply other threads:[~2019-08-15 18:15 UTC|newest]
Thread overview: 69+ 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:04 ` 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 [this message]
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:19 ` Neil Horman
2019-07-31 11:32 ` Joe Perches
2019-07-31 11:32 ` Joe Perches
2019-07-31 12:16 ` Neil Horman
2019-07-31 12:16 ` Neil Horman
2019-07-31 16:35 ` Joe Perches
2019-07-31 16:35 ` Joe Perches
2019-07-31 20:58 ` Neil Horman
2019-07-31 20:58 ` Neil Horman
2019-07-31 22:23 ` Joe Perches
2019-07-31 22:23 ` Joe Perches
2019-08-01 10:50 ` Neil Horman
2019-08-01 10:50 ` Neil Horman
2019-08-01 17:42 ` Joe Perches
2019-08-01 17:42 ` Joe Perches
2019-08-01 20:48 ` Neil Horman
2019-08-01 20:48 ` Neil Horman
2019-08-05 11:49 ` David Laight
2019-08-05 11:49 ` David Laight
2019-08-02 17:47 ` Joe Perches
2019-08-02 17:47 ` Joe Perches
2019-08-02 23:19 ` David Miller
2019-08-02 23:19 ` David Miller
2019-08-02 23:26 ` Joe Perches
2019-08-02 23:26 ` Joe Perches
2019-08-03 18:01 ` Joe Perches
2019-08-03 18:01 ` Joe Perches
2019-08-04 19:26 ` Neil Horman
2019-08-04 19:26 ` Neil Horman
2019-08-02 17:50 ` 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=201908151049.809B9AFBA9@keescook \
--to=keescook@chromium.org \
--cc=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=bp@alien8.de \
--cc=gustavo@embeddedor.com \
--cc=hpa@zytor.com \
--cc=joe@perches.com \
--cc=jolsa@redhat.com \
--cc=kan.liang@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=miguel.ojeda.sandonis@gmail.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=pavel@ucw.cz \
--cc=peterz@infradead.org \
--cc=shawn@git.icu \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=x86@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.