[Bug c/52732] New: __builtin_bswapXX doesn't work with printf format

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Mon Mar 26 22:14:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52732

             Bug #: 52732
           Summary: __builtin_bswapXX doesn't work with printf format
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: hjl.tools@gmail.com


Somehow, GCC gets very confused:

[hjl@gnu-6 gcc]$ cat /tmp/f.c
#include <stdio.h>

void
foo (int x, long y)
{
  printf ("%u\n", __builtin_bswap32 (x));
  printf ("%u\n", x);
  printf ("%lu\n", __builtin_bswap64 (x));
  printf ("%lu\n", y);
}
[hjl@gnu-6 gcc]$ ./xgcc -B./ -Wall -c /tmp/f.c
/tmp/f.c: In function ‘foo’:
/tmp/f.c:6:3: warning: format ‘%u’ expects argument of type ‘unsigned int’, but
argument 2 has type ‘unsigned int’ [-Wformat]
/tmp/f.c:8:3: warning: format ‘%lu’ expects argument of type ‘long unsigned
int’, but argument 2 has type ‘long unsigned int’ [-Wformat]
[hjl@gnu-6 gcc]$



More information about the Gcc-bugs mailing list