https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77696
--- Comment #14 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Another example from Martin: extern char buf[80]; extern char tmpdir[80]; extern char fname[8]; void f (int num) { sprintf (buf, "/%s/%s-%i.tmp", tmpdir, fname, num); } In the most basic case (nothing beyond what's in the above is known) GCC currently prints the rather mystifying: warning: ‘/’ directive writing 1 byte into a region of size between 0 and 79 [-Wformat-overflow=] 7 | __builtin_sprintf (buf, "/%s/%s-%i.tmp", tmpdir, fname, num); | ^ We need to make this more "actionable" for the end-user.