https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65158
Manuel López-Ibáñez <manu at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dmalcolm at gcc dot gnu.org, | |manu at gcc dot gnu.org --- Comment #3 from Manuel López-Ibáñez <manu at gcc dot gnu.org> --- void foo(void) { __builtin_printf("%ñ%中"); __builtin_printf ("%\x1B$B"); /* Taken from PR33748 */ } <source>: In function 'void foo()': <source>:2:22: warning: unknown conversion type character '\xc3' in format [-Wformat=] 2 | __builtin_printf("%ñ%中"); | ^~~~~~~~~ <source>:2:22: warning: unknown conversion type character '\xe4' in format [-Wformat=] <source>:3:23: warning: unknown conversion type character '\x1b' in format [-Wformat=] 3 | __builtin_printf ("%\x1B$B"); | ^~~~~~~~~ Note that ñ and 中 are multi-byte but the message only shows one byte. Another bug is that the location info fails to point within the format string (ccing David): void foo(int i) { __builtin_printf("%i%i%i%i%í%i%i",i,i,i,i,i,i); } <source>:2:23: warning: unknown conversion type character '\xc3' in format [-Wformat=] 2 | __builtin_printf("%i%i%i%i%í%i%i",i,i,i,i,i,i); | ^~~~~~~~~~~~~~~~~