Thread (145 messages) 145 messages, 28 authors, 2021-05-18

Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang

From: Finn Thain <hidden>
Date: 2020-11-25 23:22:21
Also in: amd-gfx, bridge, ceph-devel, dm-devel, dri-devel, intel-gfx, intel-wired-lan, keyrings, linux-acpi, linux-arm-msm, linux-block, linux-can, linux-cifs, linux-crypto, linux-ext4, linux-fbdev, linux-gpio, linux-hardening, linux-hwmon, linux-i3c, linux-ide, linux-iio, linux-input, linux-integrity, linux-media, linux-mediatek, linux-mm, linux-mmc, linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp, linux-security-module, linux-usb, linux-watchdog, linux-wireless, lkml, netfilter-devel, op-tee, selinux, target-devel, xen-devel

On Wed, 25 Nov 2020, Nick Desaulniers wrote:
On Wed, Nov 25, 2020 at 1:33 PM Finn Thain [off-list ref] 
wrote:
quoted
Or do you think that a codebase can somehow satisfy multiple checkers 
and their divergent interpretations of the language spec?
Have we found any cases yet that are divergent? I don't think so.
There are many implementations, so I think you are guaranteed to find more 
divergence if you look. That's because the spec is full of language like 
this: "implementations are encouraged not to emit a diagnostic" and 
"implementations are encouraged to issue a diagnostic".

Some implementations will decide to not emit (under the premise that vast 
amounts of existing code would have to get patched until the compiler goes 
quiet) whereas other implementations will decide to emit (under the 
premise that the author is doing the checking and not the janitor or the 
packager).
It sounds to me like GCC's cases it warns for is a subset of Clang's. 
Having additional coverage with Clang then should ensure coverage for 
both.
If that claim were true, the solution would be simple. (It's not.)

For the benefit of projects that enable -Werror and projects that 
nominated gcc as their preferred compiler, clang would simply need a flag 
to enable conformance with gcc by suppressing those additional warnings 
that clang would normally produce.

This simple solution is, of course, completely unworkable, since it would 
force clang to copy some portion of gcc's logic (rewritten under LLVM's 
unique license) and then to track future changes to that portion of gcc 
indefinitely.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help