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"
                ~^

Reply via email to