https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83429
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |diagnostic Status|UNCONFIRMED |NEW Last reconfirmed| |2017-12-15 CC| |msebor at gcc dot gnu.org See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=83369, | |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=83336 Ever confirmed|0 |1 --- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> --- Confirmed. The whole sprintf pass is missing the %G directive in warning_at() calls to print the inlining context. With it added the warning for the test case from comment #2 looks like this: d.c: In function ‘void test(S*)’: d.c:16:17: warning: ‘%s’ directive argument is null [-Wformat-truncation=] snprintf(s->out, sizeof(s->out), ".%s", s->str); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This should be easy to fix. It's been in the back of my mind to do this but it hasn't risen up to the top of the priority list. With a bug reported for it I have more of an incentive -- thanks :) For reference, pr83369 and pr83336 point out similar or related problems with the inlining context.