public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Tom Rini <trini@konsulko.com>
To: u-boot@lists.denx.de
Subject: [PATCH 1/1] tools: ftdgrep: use /* fallthrough */ as needed
Date: Wed, 13 May 2020 10:42:00 -0400	[thread overview]
Message-ID: <20200513144200.GF5091@bill-the-cat> (raw)
In-Reply-To: <20200513030438.GE5091@bill-the-cat>

On Tue, May 12, 2020 at 11:04:38PM -0400, Tom Rini wrote:
> On Mon, May 11, 2020 at 09:08:03PM +0200, Heinrich Schuchardt wrote:
> > On 5/11/20 8:40 PM, Tom Rini wrote:
> > > On Sun, May 10, 2020 at 10:12:07PM +0900, Masahiro Yamada wrote:
> > >> On Sun, May 10, 2020 at 12:12 AM Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:
> > >>>
> > >>> GCC recognizes /* fallthrough */ if -Wimplicit-fallthrough=3 is enabled.
> > >>
> > >> FYI.
> > >>
> > >> Linux decided to not use /* fallthrough */ any more
> > >> because Clang does not recognize it.
> > >>
> > >> __attribute__((__fallthrough__)) is supported
> > >> by both Clang and recent GCC.
> > In fact Linux has a define:
> > 
> > include/linux/compiler_attributes.h:200:# define fallthrough
> >         __attribute__((__fallthrough__))
> > 
> > And in the code you would use
> > 
> > 	case foo:
> > 		fallthrough;
> > 	case bar:
> > 
> > But the Linux kernel still has a lot of lines with
> > 
> > /* fallthrough */
> > 
> > Documentation/process/deprecated.rst:
> > 
> > <cite>
> > As there have been a long list of flaws `due to missing "break"
> > statements <https://cwe.mitre.org/data/definitions/484.html>`_, we no
> > longer allow implicit fall-through. In order to identify intentional
> > fall-through cases, we have adopted a pseudo-keyword macro "fallthrough"
> > which expands to gcc's extension `__attribute__((__fallthrough__))
> > <https://gcc.gnu.org/onlinedocs/gcc/Statement-Attributes.html>`_. (When
> > the C17/C18  `[[fallthrough]]` syntax is more commonly supported by C
> > compilers, static analyzers, and IDEs, we can switch to using that
> > syntax for the macro pseudo-keyword.)
> > </cite>
> > 
> > Using the attribute is not standard C and not any better than using the
> > comment. The real target is the C17 syntax.
> > 
> > >>
> > >>
> > >> Linux is now doing treewide conversion
> > >> from /* fallthrough */ to 'fallthrough;'.
> > >>
> > >> See include/linux/compiler_attributes.h in Linux.
> > >>
> > >> I do not know if U-Boot wants to align with it.
> > >> (up to Tom ?)
> > >
> > > A re-sync on the compiler headers again and making use of this sounds
> > > like a good idea, yes.
> > >
> > 
> > We should enable -Wimplicit-fallthrough like the kernel does. This
> > defaults to -Wimplicit-fallthrough=3 and is happy with both the comment
> > as well as with the attribute.
> > 
> > @Tom:
> > Will you update the compiler headers within this release cycle?
> > Otherwise we should take the patch as is to get us closer to the
> > -Wimplicit-fallthrough target.
> 
> I'm not going to update it for this release cycle.  I've done the
> initial import and build and there's some fairly large changes related
> to inlining that I want to look at harder to see if we can/should do
> something about (I don't want to derail this thread, I'll start
> another).  But it's very far from zero size change and given the inline
> changes I think it'll need real testing.
> 
> And since the kernel isn't making a huge use yet of fallthrough; we can
> afford to look a little harder at things.

I think I've figured out the inline issue which is that we need
scripts/Kconfig.include from the kernel, CC_HAS_ASM_INLINE Kconfig
option, and re-sync with Kconfiglib, but that's still going to be enough
stuff that I don't think it's good to pull in at -rc2.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200513/2e906188/attachment.sig>

  reply	other threads:[~2020-05-13 14:42 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-09 15:12 [PATCH 1/1] tools: ftdgrep: use /* fallthrough */ as needed Heinrich Schuchardt
2020-05-10 13:12 ` Masahiro Yamada
2020-05-11 18:40   ` Tom Rini
2020-05-11 19:08     ` Heinrich Schuchardt
2020-05-13  3:04       ` Tom Rini
2020-05-13 14:42         ` Tom Rini [this message]
2020-05-13 16:05           ` Masahiro Yamada
2020-05-13 16:13             ` Tom Rini
2020-05-13 17:27               ` Masahiro Yamada
2020-05-13 18:41                 ` Tom Rini
2020-05-13 21:52                   ` Tom Rini
2020-05-15 20:54 ` Tom Rini

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=20200513144200.GF5091@bill-the-cat \
    --to=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /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