[Bug other/80895] format not a string literal and no format arguments; in GCC itself
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat May 27 08:25:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80895
Martin Sebor <msebor at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |msebor at gcc dot gnu.org
--- Comment #7 from Martin Sebor <msebor at gcc dot gnu.org> ---
GCC format strings can contain directives like %< and %> that trigger special
handling (such as quoting and highlighting). For example, in
gcc/c-family/c-common.c:
message = catenate_messages (gmsgid, " before %<#pragma%>");
...
if (message)
{
error (message);
free (message);
error message ends up quoting #pragma and displaying it in the color set by
quote= in GCC_COLORS:
https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html
To do what you suggest I think GCC would need to recognize and use a special
directive telling to treat its argument as a format string (i.e., implement at
least a limited form recursive format string handling).
More information about the Gcc-bugs
mailing list