https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119891

            Bug ID: 119891
           Summary: Incorrect suggestion for sizeof and printf
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: nightstrike at gmail dot com
  Target Milestone: ---

void f() {
        int x;
        __builtin_printf("%d\n", sizeof(x));
}


$ gcc -c a.c -Wformat
a.c: In function 'f':
a.c:3:28: warning: format '%d' expects argument of type 'int', but argument 2
has type 'long unsigned int' [-Wformat=]
    3 |         __builtin_printf("%d\n", sizeof(x));
      |                           ~^     ~~~~~~~~~
      |                            |     |
      |                            int   long unsigned int
      |                           %ld


I think this should be recommending %zu, not %ld.  Even if it didn't recognize
the sizeof operator, it should at least have said %lu.
  • [Bug c/119891] New: Incorrect su... nightstrike at gmail dot com via Gcc-bugs

Reply via email to