This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi Joel, On Dec 14 23:19, Joel Sherrill wrote: > Hi > > I haven't investigated which other targets have this inconsistency yet. > But the following code gives a printf format warning on i386-rtems but not > on sparc-rtems. > > #include <stdint.h> > #include <inttypes.h> > #include <stdio.h> > > void f(uintptr_t me) > { > printf( "A: %" PRIdPTR " B: %" PRIdPTR "\n", me, 1 - me ); > } > > This is because intptr_t and uintptr_t are defined as just unsigned int > on sparc but long unsigned int on i386. > > $ sparc-rtems4.11-gcc -dM -E - </dev/null | grep INTPTR > #define __INTPTR_MAX__ 2147483647 > #define __INTPTR_TYPE__ int > #define __UINTPTR_MAX__ 4294967295U > #define __UINTPTR_TYPE__ unsigned int > $ i386-rtems4.11-gcc -dM -E - </dev/null | grep INTPTR > #define __INTPTR_MAX__ 2147483647L > #define __INTPTR_TYPE__ long int > #define __UINTPTR_MAX__ 4294967295UL > #define __UINTPTR_TYPE__ long unsigned int > > I don't know whether to start sweeping through gcc and try to get > these all to just unsigned int or add target architecture specific logic > to fine tune the inttypes.h that newlib has. It looks like the configure.in > logic I added a few months cleared up a lot of these but not all. It's arguably a bug in gcc if the definitions don't match the base type. I think a patch to gcc would be preferable, but an additional workaround in newlib, if it's not too convoluted, wouldn't hurt, I guess. Corinna -- Corinna Vinschen Cygwin Maintainer Red Hat
Attachment:
pgpENTgk5xpRh.pgp
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |