This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Preparsing sprintf format strings


Andreas Schwab wrote:
rridge@csclub.uwaterloo.ca (Ross Ridge) writes:

The entire parsing of the format string is affected by the multi-byte
character encoding.  I don't know how GCC would be able tell that a byte
with the same value as '%' in the middle of string would actually be
interpreted as '%' character rather than a part of an extended multibyte
character.  This can easily happen with the ISO 2022-JP encoding.

The compiler is supposed to know the encoding of the strings.

More precisely, you should tell the compiler about the input and execution charset. For example, this should make sure that a statement like this


printf ("\x1B$B%s\x1B(B");
               ^^
         this %s is not a printf escape!

does not yield a -Wformat warning even with -finput-charset=ISO-2022-JP -fexec-charset=ISO-2022-JP.

Currently, the above program *does* yield a warning, though (PR33748).

Paolo


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]