[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