https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105156
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- It is a hard problem how to figure out whether the reason for the warning when mixing code from a system header macro and non-system header tokens are caused purely by the system header macro content, or purely by non-system header tokens, or the mix of them. Currently the diagnostic code has just a single location on which it warns and without -Wsystem-headers is suppressed if that single location comes from system headers. So, except for hacks here and there for just a few warnings, we'd probably need to pass to the diagnostics code multiple locations relevant to the warning and warn if any of them is not from a system header or something similar. But we have over 2000 warning/warning_at calls and figuring out the right set of locations would be quite a lot of work.