From 63c8ef8256380fca457ee2fde534349467291c97 Mon Sep 17 00:00:00 2001 From: Ken Dyck Date: Wed, 18 Nov 2009 19:22:15 +0000 Subject: [PATCH] Define INTMAX_MIN, INTMAX_MAX, and UINTMAX_MAX in terms of the limit macros for their corresponding exact-width type. llvm-svn: 89224 --- clang/lib/Headers/stdint.h | 6 +++--- clang/test/Preprocessor/stdint.c | 30 +++++++++++++++--------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/clang/lib/Headers/stdint.h b/clang/lib/Headers/stdint.h index ecd1bbb5b9ba..2b89fa43f3af 100644 --- a/clang/lib/Headers/stdint.h +++ b/clang/lib/Headers/stdint.h @@ -634,9 +634,9 @@ typedef __stdint_exjoin3(uint, __INTMAX_WIDTH__, _t) uintmax_t; #endif /* C99 7.18.2.5 Limits of greatest-width integer types. */ -#define INTMAX_MIN (-__INTMAX_MAX__-1) -#define INTMAX_MAX __INTMAX_MAX__ -#define UINTMAX_MAX (__INTMAX_MAX__*2ULL+1ULL) +#define INTMAX_MIN __stdint_exjoin3( INT, __INTMAX_WIDTH__, _MIN) +#define INTMAX_MAX __stdint_exjoin3( INT, __INTMAX_WIDTH__, _MAX) +#define UINTMAX_MAX __stdint_exjoin3(UINT, __INTMAX_WIDTH__, _MAX) /* C99 7.18.3 Limits of other integer types. */ #define SIG_ATOMIC_MIN INT32_MIN diff --git a/clang/test/Preprocessor/stdint.c b/clang/test/Preprocessor/stdint.c index 0786f285b917..9652319cc158 100644 --- a/clang/test/Preprocessor/stdint.c +++ b/clang/test/Preprocessor/stdint.c @@ -83,7 +83,7 @@ // // ARM:INTMAX_MIN_ (-9223372036854775807LL -1) // ARM:INTMAX_MAX_ 9223372036854775807LL -// ARM:UINTMAX_MAX_ (9223372036854775807LL*2ULL +1ULL) +// ARM:UINTMAX_MAX_ 18446744073709551615ULL // // ARM:SIG_ATOMIC_MIN_ (-2147483647 -1) // ARM:SIG_ATOMIC_MAX_ 2147483647 @@ -191,7 +191,7 @@ // // BFIN:INTMAX_MIN_ (-9223372036854775807LL -1) // BFIN:INTMAX_MAX_ 9223372036854775807LL -// BFIN:UINTMAX_MAX_ (9223372036854775807LL*2ULL +1ULL) +// BFIN:UINTMAX_MAX_ 18446744073709551615ULL // // BFIN:SIG_ATOMIC_MIN_ (-2147483647 -1) // BFIN:SIG_ATOMIC_MAX_ 2147483647 @@ -299,7 +299,7 @@ // // I386:INTMAX_MIN_ (-9223372036854775807LL -1) // I386:INTMAX_MAX_ 9223372036854775807LL -// I386:UINTMAX_MAX_ (9223372036854775807LL*2ULL +1ULL) +// I386:UINTMAX_MAX_ 18446744073709551615ULL // // I386:SIG_ATOMIC_MIN_ (-2147483647 -1) // I386:SIG_ATOMIC_MAX_ 2147483647 @@ -399,7 +399,7 @@ // // MSP430:INTMAX_MIN_ (-2147483647L -1) // MSP430:INTMAX_MAX_ 2147483647L -// MSP430:UINTMAX_MAX_ (2147483647L*2ULL +1ULL) +// MSP430:UINTMAX_MAX_ 4294967295UL // // MSP430:SIG_ATOMIC_MIN_ (-2147483647L -1) // MSP430:SIG_ATOMIC_MAX_ 2147483647L @@ -499,7 +499,7 @@ // // PIC16:INTMAX_MIN_ (-2147483647L -1) // PIC16:INTMAX_MAX_ 2147483647L -// PIC16:UINTMAX_MAX_ (2147483647L*2ULL +1ULL) +// PIC16:UINTMAX_MAX_ 4294967295UL // // PIC16:SIG_ATOMIC_MIN_ (-2147483647L -1) // PIC16:SIG_ATOMIC_MAX_ 2147483647L @@ -606,7 +606,7 @@ // // PPC64:INTMAX_MIN_ (-9223372036854775807L -1) // PPC64:INTMAX_MAX_ 9223372036854775807L -// PPC64:UINTMAX_MAX_ (9223372036854775807L*2ULL +1ULL) +// PPC64:UINTMAX_MAX_ 18446744073709551615UL // // PPC64:SIG_ATOMIC_MIN_ (-2147483647 -1) // PPC64:SIG_ATOMIC_MAX_ 2147483647 @@ -714,7 +714,7 @@ // // PPC:INTMAX_MIN_ (-9223372036854775807LL -1) // PPC:INTMAX_MAX_ 9223372036854775807LL -// PPC:UINTMAX_MAX_ (9223372036854775807LL*2ULL +1ULL) +// PPC:UINTMAX_MAX_ 18446744073709551615ULL // // PPC:SIG_ATOMIC_MIN_ (-2147483647 -1) // PPC:SIG_ATOMIC_MAX_ 2147483647 @@ -819,9 +819,9 @@ // S390X:PTRDIFF_MAX_ 9223372036854775807L // S390X:SIZE_MAX_ 18446744073709551615UL // -// S390X:INTMAX_MIN_ (-9223372036854775807LL -1) -// S390X:INTMAX_MAX_ 9223372036854775807LL -// S390X:UINTMAX_MAX_ (9223372036854775807LL*2ULL +1ULL) +// S390X:INTMAX_MIN_ (-9223372036854775807L -1) +// S390X:INTMAX_MAX_ 9223372036854775807L +// S390X:UINTMAX_MAX_ 18446744073709551615UL // // S390X:SIG_ATOMIC_MIN_ (-2147483647 -1) // S390X:SIG_ATOMIC_MAX_ 2147483647 @@ -928,7 +928,7 @@ // // SPARC:INTMAX_MIN_ (-9223372036854775807LL -1) // SPARC:INTMAX_MAX_ 9223372036854775807LL -// SPARC:UINTMAX_MAX_ (9223372036854775807LL*2ULL +1ULL) +// SPARC:UINTMAX_MAX_ 18446744073709551615ULL // // SPARC:SIG_ATOMIC_MIN_ (-2147483647 -1) // SPARC:SIG_ATOMIC_MAX_ 2147483647 @@ -1026,9 +1026,9 @@ // TCE:PTRDIFF_MAX_ 2147483647 // TCE:SIZE_MAX_ 4294967295U // -// TCE:INTMAX_MIN_ (-2147483647L -1) -// TCE:INTMAX_MAX_ 2147483647L -// TCE:UINTMAX_MAX_ (2147483647L*2ULL +1ULL) +// TCE:INTMAX_MIN_ (-2147483647 -1) +// TCE:INTMAX_MAX_ 2147483647 +// TCE:UINTMAX_MAX_ 4294967295U // // TCE:SIG_ATOMIC_MIN_ (-2147483647 -1) // TCE:SIG_ATOMIC_MAX_ 2147483647 @@ -1136,7 +1136,7 @@ // // X86_64:INTMAX_MIN_ (-9223372036854775807L -1) // X86_64:INTMAX_MAX_ 9223372036854775807L -// X86_64:UINTMAX_MAX_ (9223372036854775807L*2ULL +1ULL) +// X86_64:UINTMAX_MAX_ 18446744073709551615UL // // X86_64:SIG_ATOMIC_MIN_ (-2147483647 -1) // X86_64:SIG_ATOMIC_MAX_ 2147483647