https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52952
Manuel López-Ibáñez <manu at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #27466|0 |1 is obsolete| | --- Comment #30 from Manuel López-Ibáñez <manu at gcc dot gnu.org> --- Created attachment 33647 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33647&action=edit create locations from loc + offset This variant works for simple strings. However, it cannot handle even simple macros: format.c:1:18: warning: format ‘%d’ expects a matching ‘int’ argument [-Wformat=] #define FORMAT "%d" ^ format.c:8:24: warning: format ‘%d’ expects a matching ‘int’ argument [-Wformat=] __builtin_printf("a" FORMAT); ^ whereas Clang can: format.c:7:20: warning: more '%' conversions than data arguments [-Wformat] __builtin_printf(FORMAT); ^ format.c:1:18: note: expanded from macro 'FORMAT' #define FORMAT "%d" ~^ format.c:8:25: warning: more '%' conversions than data arguments [-Wformat] __builtin_printf("a" FORMAT); ^ format.c:1:18: note: expanded from macro 'FORMAT' #define FORMAT "%d" ~^