When GCC cannot recognise a format specifier, it produces spurious warnings. For example:
gcc/coverage.c:364: warning: unknown conversion type character E in format gcc/coverage.c:364: warning: format %qs expects type char *, but argument 3 has type tree gcc/coverage.c:364: warning: too many arguments for format In this case, %qE was not recognised by the compiler. It should skip the corresponding argument and continue to check the remaining format specifiers and arguments. At present, it tests the second format specifier against the first argument, and so on. -- Summary: spurious format string warnings Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: bje at gcc dot gnu dot org GCC host triplet: powerpc-linux GCC target triplet: powerpc-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40065