https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113752
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Anyway, I think the testcase is very similar to char a[256], *c, *g; int foo (void) { if (__builtin_strlen (c) + __builtin_strlen (g) + 5 > 256) return 0; __builtin_sprintf (a, "abcd%s%s", c, g); return 1; } which has started diagnosing this with r12-5014-g6b8b959675a3e14cfdd2145bd62e4260eb193765 at -O2 -Wall -W