printf/inttypes.h warning

Joseph Myers
Tue Dec 16 15:44:00 GMT 2014

On Tue, 16 Dec 2014, Corinna Vinschen wrote:

> > It is GCC. gcc/config/newlib-stdint.h where GCC defines the types.
> Ok, I didn't know there's newlib-specific stuff in GCC.  I'm just
> not sure in how far this is newlib's fault.  The usage of __INTPTR_TYPE__
> looks right to me.  The gcc/config/newlib-stdint.h file seems to be
> outdated???

newlib-stdint.h is meant to replicate the logic used by all versions of 
newlib to select these types, including versions predating the addition of 
macros such as __INTPTR_TYPE__.

* The choices of these types are meant to be constant over time.

* GCC needs to know them (without reference to the newlib headers when GCC 
is built) for such purposes as Fortran C bindings.

* newlib stdint.h as of 2008/9 was used as the source of truth about these 
types when writing newlib-stdint.h.

* When newlib uses macros such as __INTPTR_TYPE__ it's indirectly using 
GCC's newlib-stdint.h as a source of truth - but this should never change 
the choice of types relative to what would be used with older GCC or 
non-GCC compilers.

Joseph S. Myers

More information about the Newlib mailing list