From 33af49ec64a71a736aa33080b5e0a9bd4a980a2f Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Sat, 10 Mar 2007 14:52:08 +0000 Subject: [PATCH] * lib/stdint_.h (int64_t, uint64_t): Don't undefine if 64-bit types are not being provided by gnulib. (GL_INT64_T, GL_UINT64_T): New witnesses of whether gnulib 64-bit types are supported. --- ChangeLog | 8 ++++++++ lib/stdint_.h | 44 ++++++++++++++++++++++++++++---------------- 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6858e08137..98c7d1b870 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-03-09 Eric Blake + and Matthew Woehlke (tiny change) + + * lib/stdint_.h (int64_t, uint64_t): Don't undefine if 64-bit + types are not being provided by gnulib. + (GL_INT64_T, GL_UINT64_T): New witnesses of whether gnulib 64-bit + types are supported. + 2007-03-10 Bruno Haible * lib/stdio_.h (__attribute__): New macro. diff --git a/lib/stdint_.h b/lib/stdint_.h index 64ec8c5b68..098637fcdb 100644 --- a/lib/stdint_.h +++ b/lib/stdint_.h @@ -120,22 +120,34 @@ #define int32_t int #define uint32_t unsigned int -#undef int64_t +/* Do not undefine int64_t if gnulib is not being used with 64-bit + types, since otherwise it breaks platforms like Tandem/NSK. */ #if LONG_MAX >> 31 >> 31 == 1 +# undef int64_t # define int64_t long int +# define GL_INT64_T #elif defined _MSC_VER +# undef int64_t # define int64_t __int64 +# define GL_INT64_T #elif @HAVE_LONG_LONG_INT@ +# undef int64_t # define int64_t long long int +# define GL_INT64_T #endif -#undef uint64_t #if ULONG_MAX >> 31 >> 31 >> 1 == 1 +# undef uint64_t # define uint64_t unsigned long int +# define GL_UINT64_T #elif defined _MSC_VER +# undef uint64_t # define uint64_t unsigned __int64 +# define GL_UINT64_T #elif @HAVE_UNSIGNED_LONG_LONG_INT@ +# undef uint64_t # define uint64_t unsigned long long int +# define GL_UINT64_T #endif /* Avoid collision with Solaris 2.5.1 etc. */ @@ -164,10 +176,10 @@ #define uint_least16_t uint16_t #define int_least32_t int32_t #define uint_least32_t uint32_t -#ifdef int64_t +#ifdef GL_INT64_T # define int_least64_t int64_t #endif -#ifdef uint64_t +#ifdef GL_UIN64_T # define uint_least64_t uint64_t #endif @@ -195,10 +207,10 @@ #define uint_fast16_t unsigned int_fast16_t #define int_fast32_t long int #define uint_fast32_t unsigned int_fast32_t -#ifdef int64_t +#ifdef GL_INT64_T # define int_fast64_t int64_t #endif -#ifdef uint64_t +#ifdef GL_UINT64_T # define uint_fast64_t uint64_t #endif @@ -217,7 +229,7 @@ #undef intmax_t #if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define intmax_t long long int -#elif defined int64_t +#elif defined GL_INT64_T # define intmax_t int64_t #else # define intmax_t long int @@ -226,7 +238,7 @@ #undef uintmax_t #if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 # define uintmax_t unsigned long long int -#elif defined uint64_t +#elif defined GL_UINT64_T # define uintmax_t uint64_t #else # define uintmax_t unsigned long int @@ -264,13 +276,13 @@ #undef INT64_MIN #undef INT64_MAX -#ifdef int64_t +#ifdef GL_INT64_T # define INT64_MIN (~ INT64_MAX) # define INT64_MAX INTMAX_C (9223372036854775807) #endif #undef UINT64_MAX -#ifdef uint64_t +#ifdef GL_UINT64_T # define UINT64_MAX UINTMAX_C (18446744073709551615) #endif @@ -303,13 +315,13 @@ #undef INT_LEAST64_MIN #undef INT_LEAST64_MAX -#ifdef int64_t +#ifdef GL_INT64_T # define INT_LEAST64_MIN INT64_MIN # define INT_LEAST64_MAX INT64_MAX #endif #undef UINT_LEAST64_MAX -#ifdef uint64_t +#ifdef GL_UINT64_T # define UINT_LEAST64_MAX UINT64_MAX #endif @@ -342,13 +354,13 @@ #undef INT_FAST64_MIN #undef INT_FAST64_MAX -#ifdef int64_t +#ifdef GL_INT64_T # define INT_FAST64_MIN INT64_MIN # define INT_FAST64_MAX INT64_MAX #endif #undef UINT_FAST64_MAX -#ifdef uint64_t +#ifdef GL_UINT64_T # define UINT_FAST64_MAX UINT64_MAX #endif @@ -469,7 +481,7 @@ #undef INTMAX_C #if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define INTMAX_C(x) x##LL -#elif defined int64_t +#elif defined GL_INT64_T # define INTMAX_C(x) INT64_C(x) #else # define INTMAX_C(x) x##L @@ -478,7 +490,7 @@ #undef UINTMAX_C #if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 # define UINTMAX_C(x) x##ULL -#elif defined uint64_t +#elif defined GL_UINT64_T # define UINTMAX_C(x) UINT64_C(x) #else # define UINTMAX_C(x) x##UL -- 2.30.2