From: Kees Cook <keescook@chromium.org> To: Jakub Kicinski <kuba@kernel.org> Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>, linux-kernel@vger.kernel.org, alsa-devel@alsa-project.org, amd-gfx@lists.freedesktop.org, bridge@lists.linux-foundation.org, ceph-devel@vger.kernel.org, cluster-devel@redhat.com, coreteam@netfilter.org, devel@driverdev.osuosl.org, dm-devel@redhat.com, drbd-dev@lists.linbit.com, dri-devel@lists.freedesktop.org, GR-everest-linux-l2@marvell.com, GR-Linux-NIC-Dev@marvell.com, intel-gfx@lists.freedesktop.org, intel-wired-lan@lists.osuosl.org, keyrings@vger.kernel.org, linux1394-devel@lists.sourceforge.net, linux-acpi@vger.kernel.org, linux-afs@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-atm-general@lists.sourceforge.net, linux-block@vger.kernel.org, linux-can@vger.kernel.org, linux-cifs@vger.kernel.org, linux-crypto@vger.kernel.org, linux-decnet-user@lists.sourceforge.net, linux-ext4@vger.kernel.org, linux-fbdev@vger.kernel.org, linux-geode@lists.infradead.org, linux-gpio@vger.kernel.org, linux-hams@vger.kernel.org, linux-hwmon@vger.kernel.org, linux-i3c@lists.infradead.org, linux-ide@vger.kernel.org, linux-iio@vger.kernel.org, linux-input@vger.kernel.org, linux-integrity@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-media@vger.kernel.org, linux-mmc@vger.kernel.org, linux-mm@kvack.org, linux-mtd@lists.infradead.org, linux-nfs@vger.kernel.org, linux-rdma@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-scsi@vger.kernel.org, linux-sctp@vger.kernel.org, linux-security-module@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-usb@vger.kernel.org, linux-watchdog@vger.kernel.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org, netfilter-devel@vger.kernel.org, nouveau@lists.freedesktop.org, op-tee@lists.trustedfirmware.org, oss-drivers@netronome.com, patches@opensource.cirrus.com, rds-devel@oss.oracle.com, reiserfs-devel@vger.kernel.org, samba-technical@lists.samba.org, selinux@vger.kernel.org, target-devel@vger.kernel.org, tipc-discussion@lists.sourceforge.net, usb-storage@lists.one-eyed-alien.net, virtualization@lists.linux-foundation.org, wcn36xx@lists.infradead.org, x86@kernel.org, xen-devel@lists.xenproject.org, linux-hardening@vger.kernel.org, Nick Desaulniers <ndesaulniers@google.com>, Nathan Chancellor <natechancellor@gmail.com>, Miguel Ojeda <ojeda@kernel.org>, Joe Perches <joe@perches.com> Subject: Re: [PATCH 000/141] Fix fall-through warnings for Clang Date: Fri, 20 Nov 2020 12:48:01 -0800 Message-ID: <202011201244.78E002D5@keescook> (raw) In-Reply-To: <20201120115142.292999b2@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> On Fri, Nov 20, 2020 at 11:51:42AM -0800, Jakub Kicinski wrote: > On Fri, 20 Nov 2020 11:30:40 -0800 Kees Cook wrote: > > On Fri, Nov 20, 2020 at 10:53:44AM -0800, Jakub Kicinski wrote: > > > On Fri, 20 Nov 2020 12:21:39 -0600 Gustavo A. R. Silva wrote: > > > > This series aims to fix almost all remaining fall-through warnings in > > > > order to enable -Wimplicit-fallthrough for Clang. > > > > > > > > In preparation to enable -Wimplicit-fallthrough for Clang, explicitly > > > > add multiple break/goto/return/fallthrough statements instead of just > > > > letting the code fall through to the next case. > > > > > > > > Notice that in order to enable -Wimplicit-fallthrough for Clang, this > > > > change[1] is meant to be reverted at some point. So, this patch helps > > > > to move in that direction. > > > > > > > > Something important to mention is that there is currently a discrepancy > > > > between GCC and Clang when dealing with switch fall-through to empty case > > > > statements or to cases that only contain a break/continue/return > > > > statement[2][3][4]. > > > > > > Are we sure we want to make this change? Was it discussed before? > > > > > > Are there any bugs Clangs puritanical definition of fallthrough helped > > > find? > > > > > > IMVHO compiler warnings are supposed to warn about issues that could > > > be bugs. Falling through to default: break; can hardly be a bug?! > > > > It's certainly a place where the intent is not always clear. I think > > this makes all the cases unambiguous, and doesn't impact the machine > > code, since the compiler will happily optimize away any behavioral > > redundancy. > > If none of the 140 patches here fix a real bug, and there is no change > to machine code then it sounds to me like a W=2 kind of a warning. I'd like to avoid splitting common -W options between default and W=2 just based on the compiler. Getting -Wimplicit-fallthrough enabled found plenty of bugs, so making sure it works correctly for both compilers feels justified to me. (This is just a subset of the same C language short-coming.) > I think clang is just being annoying here, but if I'm the only one who > feels this way chances are I'm wrong :) It's being pretty pedantic, but I don't think it's unreasonable to explicitly state how every case ends. GCC's silence for the case of "fall through to a break" doesn't really seem justified. -- Kees Cook
next prev parent reply index Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-11-20 18:21 Gustavo A. R. Silva 2020-11-20 18:28 ` Joe Perches 2020-11-20 19:02 ` Gustavo A. R. Silva 2020-11-20 18:40 ` [PATCH 134/141] video: fbdev: lxfb_ops: " Gustavo A. R. Silva 2020-11-22 22:05 ` Sam Ravnborg 2020-11-24 14:44 ` Gustavo A. R. Silva 2020-11-20 18:40 ` [PATCH 135/141] video: fbdev: pm2fb: " Gustavo A. R. Silva 2020-11-20 18:53 ` [PATCH 000/141] " Jakub Kicinski 2020-11-20 19:04 ` Gustavo A. R. Silva 2020-11-20 19:30 ` Kees Cook 2020-11-20 19:51 ` Jakub Kicinski 2020-11-20 20:48 ` Kees Cook [this message] 2020-11-22 16:17 ` Kees Cook 2020-11-22 18:21 ` James Bottomley 2020-11-22 18:25 ` Joe Perches 2020-11-22 19:12 ` James Bottomley 2020-11-22 19:22 ` Joe Perches 2020-11-22 19:53 ` James Bottomley 2020-11-23 13:03 ` [Intel-wired-lan] " Gustavo A. R. Silva 2020-11-23 16:31 ` James Bottomley 2020-11-24 21:32 ` Kees Cook 2020-11-24 22:24 ` Finn Thain 2020-11-24 23:15 ` Miguel Ojeda 2020-11-24 23:53 ` Finn Thain 2020-11-25 1:05 ` Miguel Ojeda 2020-11-25 7:05 ` James Bottomley 2020-11-25 12:24 ` Nick Desaulniers 2020-11-25 21:33 ` Finn Thain 2020-11-25 22:09 ` Nick Desaulniers 2020-11-25 23:21 ` Finn Thain 2020-11-26 0:30 ` Finn Thain [not found] ` <20201125082405.1d8c23dc@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> 2020-11-25 17:04 ` Miguel Ojeda 2020-11-25 22:09 ` Nick Desaulniers 2020-11-25 21:10 ` Kees Cook 2020-11-22 20:35 ` Miguel Ojeda 2020-11-22 22:36 ` James Bottomley 2020-11-23 14:19 ` Miguel Ojeda 2020-11-23 15:58 ` James Bottomley 2020-11-23 16:24 ` Rafael J. Wysocki 2020-11-23 16:32 ` Joe Perches 2020-11-23 18:56 ` Miguel Ojeda 2020-11-23 20:37 ` James Bottomley 2020-11-25 0:32 ` Miguel Ojeda 2020-11-25 22:44 ` Edward Cree 2020-11-26 14:53 ` Miguel Ojeda 2020-11-26 15:28 ` Geert Uytterhoeven 2020-11-26 16:18 ` Karol Herbst 2020-11-26 17:05 ` Miguel Ojeda 2020-11-25 10:38 ` Andy Shevchenko 2020-11-25 9:01 ` Sean Young 2020-11-22 22:54 ` Finn Thain 2020-11-22 23:04 ` James Bottomley 2020-11-23 14:05 ` Miguel Ojeda 2020-11-24 0:58 ` Finn Thain 2020-11-24 1:05 ` Joe Perches 2020-11-24 2:48 ` Finn Thain 2020-11-24 23:46 ` Miguel Ojeda 2020-11-22 22:10 ` Sam Ravnborg 2020-11-24 1:32 ` Nick Desaulniers 2020-11-24 21:25 ` Kees Cook 2020-11-25 23:02 ` Edward Cree 2020-12-01 14:08 ` Dan Carpenter 2020-12-01 14:04 ` Dan Carpenter 2020-11-20 22:21 ` Miguel Ojeda 2020-11-23 20:03 ` Jason Gunthorpe 2020-11-24 14:47 ` Gustavo A. R. Silva [not found] ` <160616392671.21180.16517492185091399884.b4-ty@kernel.org> 2020-11-24 14:47 ` Gustavo A. R. Silva 2020-12-01 5:52 ` Martin K. Petersen 2020-12-01 8:20 ` Gustavo A. R. Silva 2020-12-08 4:52 ` (subset) " Martin K. Petersen
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=202011201244.78E002D5@keescook \ --to=keescook@chromium.org \ --cc=GR-Linux-NIC-Dev@marvell.com \ --cc=GR-everest-linux-l2@marvell.com \ --cc=alsa-devel@alsa-project.org \ --cc=amd-gfx@lists.freedesktop.org \ --cc=bridge@lists.linux-foundation.org \ --cc=ceph-devel@vger.kernel.org \ --cc=cluster-devel@redhat.com \ --cc=coreteam@netfilter.org \ --cc=devel@driverdev.osuosl.org \ --cc=dm-devel@redhat.com \ --cc=drbd-dev@lists.linbit.com \ --cc=dri-devel@lists.freedesktop.org \ --cc=gustavoars@kernel.org \ --cc=intel-gfx@lists.freedesktop.org \ --cc=intel-wired-lan@lists.osuosl.org \ --cc=joe@perches.com \ --cc=keyrings@vger.kernel.org \ --cc=kuba@kernel.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-afs@lists.infradead.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-atm-general@lists.sourceforge.net \ --cc=linux-block@vger.kernel.org \ --cc=linux-can@vger.kernel.org \ --cc=linux-cifs@vger.kernel.org \ --cc=linux-crypto@vger.kernel.org \ --cc=linux-decnet-user@lists.sourceforge.net \ --cc=linux-ext4@vger.kernel.org \ --cc=linux-fbdev@vger.kernel.org \ --cc=linux-geode@lists.infradead.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-hams@vger.kernel.org \ --cc=linux-hardening@vger.kernel.org \ --cc=linux-hwmon@vger.kernel.org \ --cc=linux-i3c@lists.infradead.org \ --cc=linux-ide@vger.kernel.org \ --cc=linux-iio@vger.kernel.org \ --cc=linux-input@vger.kernel.org \ --cc=linux-integrity@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ --cc=linux-mm@kvack.org \ --cc=linux-mmc@vger.kernel.org \ --cc=linux-mtd@lists.infradead.org \ --cc=linux-nfs@vger.kernel.org \ --cc=linux-rdma@vger.kernel.org \ --cc=linux-renesas-soc@vger.kernel.org \ --cc=linux-scsi@vger.kernel.org \ --cc=linux-sctp@vger.kernel.org \ --cc=linux-security-module@vger.kernel.org \ --cc=linux-stm32@st-md-mailman.stormreply.com \ --cc=linux-usb@vger.kernel.org \ --cc=linux-watchdog@vger.kernel.org \ --cc=linux-wireless@vger.kernel.org \ --cc=linux1394-devel@lists.sourceforge.net \ --cc=natechancellor@gmail.com \ --cc=ndesaulniers@google.com \ --cc=netdev@vger.kernel.org \ --cc=netfilter-devel@vger.kernel.org \ --cc=nouveau@lists.freedesktop.org \ --cc=ojeda@kernel.org \ --cc=op-tee@lists.trustedfirmware.org \ --cc=oss-drivers@netronome.com \ --cc=patches@opensource.cirrus.com \ --cc=rds-devel@oss.oracle.com \ --cc=reiserfs-devel@vger.kernel.org \ --cc=samba-technical@lists.samba.org \ --cc=selinux@vger.kernel.org \ --cc=target-devel@vger.kernel.org \ --cc=tipc-discussion@lists.sourceforge.net \ --cc=usb-storage@lists.one-eyed-alien.net \ --cc=virtualization@lists.linux-foundation.org \ --cc=wcn36xx@lists.infradead.org \ --cc=x86@kernel.org \ --cc=xen-devel@lists.xenproject.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
Linux-fbdev Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-fbdev/0 linux-fbdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-fbdev linux-fbdev/ https://lore.kernel.org/linux-fbdev \ linux-fbdev@vger.kernel.org public-inbox-index linux-fbdev Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-fbdev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git