Conversation

Not only is the recipient of your code possibly using a different compiler version with different warnings, in which case you'll just break their build and annoy them...
1
24
If you break the build for them by shipping with -Werror, the likely outcome is that they start making random changes to the code the compiler warns about until the warning goes away, possibly BREAKING THE CODE IN DANGEROUS WAYS.
1
30
Summary: -Werror is only meaningful with a known compiler version and build target, and only to developers who can meaningfully act on the failures. Don't ship with -Werror. Ever.
2
44
Replying to
Since the Linux kernel doesn't follow the C memory model and disregards undefined behavior rules they don't agree with, it's fairly dangerous to use a newer compiler than what they're broadly using and testing themselves. Ideally, they'd actually list what's being tested / used.
Replying to and
It's pretty common for there to be regressions via subtle bugs introduced due to compiler bugs or kernel bugs triggered only on certain toolchains, generally the newer ones that aren't widely used / tested yet. Of course you also get a lot of bug fixes through those new versions.
1
Replying to and
I don't really think people moving to a new compiler version that's not yet being tested with the usual issues worked through upstream. It's really quite common that they need to fix actual bugs for new toolchains. Need to test the new toolchains across hardware and fix issues.
Replying to
For Linux it's specific bare-metal targets so -Werror is less evil than in general, but still a bad idea. Linux uses -fno-strict-aliasing etc. so it's not subject to most C memory model issues a new compiler could break.
1
Replying to
I mean that they don't follow the C11 memory model for atomics and make extensive use of atomics. The compiler developers don't agree with their homegrown rules and don't respect them. There's a whole lot of complicated lock-free data structure stuff that's really quite fragile.
2
Show replies