https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98871
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|c |middle-end Last reconfirmed| |2021-01-29 See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=98465, | |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=98512 Ever confirmed|0 |1 Keywords| |diagnostic CC| |msebor at gcc dot gnu.org Status|UNCONFIRMED |NEW Blocks| |24639 --- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> --- Confirmed. The root cause of the problem is that the #pragma diagnostic suppression machinery consider only one location but that location may be different depending on the warning and depending on inlining. For some warnings it's the location of the call site into which the problem statement has been inlined. For others it might be the original location of the statement itself. -Wuninitialized and -Wmaybe-uninitialized happen to fall into the first category. The solution I posted for pr98465 and pr98512 lets it consider both (or all locations along the inlining stack) and, with an minor extension, makes the suppression work in this case as well. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24639 [Bug 24639] [meta-bug] bug to track all Wuninitialized issues