On Sat, Feb 26, 2022 at 03:03:09PM -0800, Linus Torvalds wrote: > On Sat, Feb 26, 2022 at 2:14 PM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > > > Could gcc follow the clang behavior then and skip the warning and > > sanitizer for this case when -fno-strict-overflow or -fwrapv are used? > > Well, for the kernel, that horse has already left the barn, and we'd > have to use -Wno-shift-negative-value anyway. > > But yes, from a sanity standpoint, it would be good to shut that > warning up automatically if compiling for a 2's complement machine (ie > "all of them") with -fwrapv. > > Considering that gcc doesn't support any non-2's-complement machines > anyway afaik, * 'Whether signed integer types are represented using sign and magnitude, two's complement, or one's complement, and whether the extraordinary value is a trap representation or an ordinary value (C99 and C11 6.2.6.2).' GCC supports only two's complement integer types, and all bit patterns are ordinary values. > and that the C standards people are also fixing the > standard, and gcc has never done anything odd in this area in the > first place, I think the warning is probably best removed entirely. Well, not removed, it correctly identifies (formally) undefined behaviour after all; but I agree it should not be in -Wextra. -Wall should include the warnings that have a very good balance for usefulness, number of false postives, seriousness of problems found. -Wextra is exactly the same conditions, just a slightly lower bar. -Wall should be useful for everyone. -Wall -W should be good for most people. > But we'll have to do it manually for the existing situation. Yes, sorry about that :-/ Segher