diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 0ed1b83c5..e6eafdb64 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,10 @@ +2005-10-03 Ralf Corsepius + + * libc/include/stdint.h: + Use __INTMAX_TYPE__ to derive intmax_t. + Use __UINTMAX_TYPE__ to derive uintmax_t. + Fix minor typo. + 2005-09-27 Ralf Corsepius * libc/include/stdint.h: Correct __STDINT_EXP macro incorrectly diff --git a/newlib/libc/include/stdint.h b/newlib/libc/include/stdint.h index f9e8d837f..a95c149a2 100644 --- a/newlib/libc/include/stdint.h +++ b/newlib/libc/include/stdint.h @@ -148,16 +148,27 @@ typedef uint64_t uint_least32_t; #endif #endif -#if __have_longlong64 -typedef signed long long intmax_t; -typedef unsigned long long uintmax_t; +/* Greatest-width integer types */ +/* Modern GCCs provide __INTMAX_TYPE__ */ +#if defined(__INTMAX_TYPE__) + typedef __INTMAX_TYPE__ intmax_t; +#elif __have_longlong64 + typedef signed long long intmax_t; #else -typedef signed long intmax_t; -typedef unsigned long uintmax_t; + typedef signed long intmax_t; #endif +/* Modern GCCs provide __UINTMAX_TYPE__ */ +#if defined(__UINTMAX_TYPE__) + typedef __UINTMAX_TYPE__ uintmax_t; +#elif __have_longlong64 + typedef unsigned long long uintmax_t; + #else + typedef unsigned long uintmax_t; + #endif + /* - * GCC doesn't provide an propriate macro for [u]intptr_t + * GCC doesn't provide an appropriate macro for [u]intptr_t * For now, use __PTRDIFF_TYPE__ */ #if defined(__PTRDIFF_TYPE__)