On Tue, Mar 26, 2024, at 21:24, Jani Nikula wrote: > On Tue, 26 Mar 2024, Arnd Bergmann <arnd@xxxxxxxxxx> wrote: >> From: Arnd Bergmann <arnd@xxxxxxxx> >> index 475e1e8c1d35..0786eb0da391 100644 >> --- a/drivers/net/ethernet/renesas/sh_eth.c >> +++ b/drivers/net/ethernet/renesas/sh_eth.c >> @@ -50,7 +50,7 @@ >> * the macros available to do this only define GCC 8. >> */ >> __diag_push(); >> -__diag_ignore(GCC, 8, "-Woverride-init", >> +__diag_ignore_all("-Woverride-init", >> "logic to initialize all and then override some is OK"); > > This is nice because it's more localized than the per-file > disable. However, we tried to do this in i915, but this doesn't work for > GCC versions < 8, and some defconfigs enabling -Werror forced us to > revert. See commit 290d16104575 ("Revert "drm/i915: use localized > __diag_ignore_all() instead of per file""). It works now. The original __diag_ignore_all() only did it for gcc-8 and above because that was initially needed to suppress warnings that got added in that version, but this was always a mistake. 689b097a06ba ("compiler-gcc: Suppress -Wmissing-prototypes warning for all supported GCC") made it work correctly. Arnd