http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54582
--- Comment #11 from David Binderman <dcb314 at hotmail dot com> 2013-02-06 18:47:37 UTC --- >It isn't that easy. For %'s you really have to parse all the characters after >% and figure out where the format specifier ends. Agreed. But it doesn't have to be perfect, it just has to be better than the previous solution. This is only a warning we are discussing. It can be ignored. The Werror folks are, IMHO, far too keen for their own good. I wrote: >All the numeric specifiers (%d, %u etc) all produce at least one >character, so gcc could take account of this in checking buffer lengths. In computing a lower bound, all % specifiers could be assumed to produce at least one byte of output. Parsing the % specifier doesn't have to be perfect, it just has to understand the common cases (%s, %d, %u etc) and punt on the rest. More understanding can be added in later versions.