[patch] stdint.h/inttypes.h

Jeff Johnston jjohnstn@redhat.com
Fri Dec 16 21:57:00 GMT 2005


Patch squeaked in under the wire :)

-- Jeff J.

Ralf Corsepius wrote:
> Hi,
> 
> Below are further updates to stdint.h/inttypes.h.
> 
> The patch actually consists of 2 parts:
> 
> * Use "#if xxx" instead of "#ifdef xxx" in inttypes.h.
> A similar patch had been applied to stdint.h some time ago, but I seem
> to have missed to reflect this change to inttypes.h when having
> submitted the stdint.h patch, then ;)
> 
> * Prefer long over int int32 for targets having 32-bit longs.
> This works around some subtile issues in PR*32 macros (inttypes.h) on
> 32-bit targets.
> 
> Ralf
> 
> 
> 
> ------------------------------------------------------------------------
> 
> 2005-12-16  Ralf Corsepius <ralf.corsepius@rtems.org>
> 
> 	* libc/include/stdint.h: Prefer long over int for int32_t.
> 	Use __have_long32 to set up int32_t.
> 	* libc/include/inttypes.h: Use "#if xxx" instead of "#ifdef xxx"
> 	(Sync with stdint.h).
> 
> Index: libc/include/inttypes.h
> ===================================================================
> RCS file: /cvs/src/src/newlib/libc/include/inttypes.h,v
> retrieving revision 1.2
> diff -u -r1.2 inttypes.h
> --- libc/include/inttypes.h	20 Sep 2005 21:21:51 -0000	1.2
> +++ libc/include/inttypes.h	16 Dec 2005 03:06:16 -0000
> @@ -112,7 +112,7 @@
>  #define SCNxFAST16	__SCN16(x)
>  
>  /* 32-bit types */
> -#if defined(__have_long32)
> +#if __have_long32
>  #define __PRI32(x) __STRINGIFY(l##x)
>  #define __SCN32(x) __STRINGIFY(l##x)
>  #else
> @@ -163,10 +163,10 @@
>  
>  
>  /* 64-bit types */
> -#if defined(__have_longlong64)
> +#if __have_longlong64
>  #define __PRI64(x) __STRINGIFY(ll##x)
>  #define __SCN64(x) __STRINGIFY(ll##x)
> -#elif defined(__have_long64)
> +#elif __have_long64
>  #define __PRI64(x) __STRINGIFY(l##x)
>  #define __SCN64(x) __STRINGIFY(l##x)
>  #else
> @@ -217,10 +217,10 @@
>  #endif
>  
>  /* max-bit types */
> -#if defined(__have_longlong64)
> +#if __have_longlong64
>  #define __PRIMAX(x) __STRINGIFY(ll##x)
>  #define __SCNMAX(x) __STRINGIFY(ll##x)
> -#elif defined(__have_long64)
> +#elif __have_long64
>  #define __PRIMAX(x) __STRINGIFY(l##x)
>  #define __SCNMAX(x) __STRINGIFY(l##x)
>  #else
> @@ -242,10 +242,10 @@
>  #define SCNxMAX		__SCNMAX(x)
>  
>  /* ptr types */
> -#if defined(__have_longlong64)
> +#if __have_longlong64
>  #define __PRIPTR(x) __STRINGIFY(ll##x)
>  #define __SCNPTR(x) __STRINGIFY(ll##x)
> -#elif defined(__have_long64)
> +#elif __have_long64
>  #define __PRIPTR(x) __STRINGIFY(l##x)
>  #define __SCNPTR(x) __STRINGIFY(l##x)
>  #else
> Index: libc/include/stdint.h
> ===================================================================
> RCS file: /cvs/src/src/newlib/libc/include/stdint.h,v
> retrieving revision 1.8
> diff -u -r1.8 stdint.h
> --- libc/include/stdint.h	1 Nov 2005 22:26:21 -0000	1.8
> +++ libc/include/stdint.h	16 Dec 2005 03:06:17 -0000
> @@ -79,14 +79,14 @@
>  #endif
>  #endif
>  
> -#if __STDINT_EXP(INT_MAX) == 0x7fffffffL
> -typedef signed int int32_t;
> -typedef unsigned int uint32_t;
> -#define __int32_t_defined 1
> -#elif __STDINT_EXP(LONG_MAX) == 0x7fffffffL
> +#if __have_long32
>  typedef signed long int32_t;
>  typedef unsigned long uint32_t;
>  #define __int32_t_defined 1
> +#elif __STDINT_EXP(INT_MAX) == 0x7fffffffL
> +typedef signed int int32_t;
> +typedef unsigned int uint32_t;
> +#define __int32_t_defined 1
>  #elif __STDINT_EXP(SHRT_MAX) == 0x7fffffffL
>  typedef signed short int32_t;
>  typedef unsigned short uint32_t;



More information about the Newlib mailing list