Define intmax_t and uintmax_t as the [u]intN_t type corresponding to
__INTMAX_WIDTH__.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89221 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Headers/stdint.h b/lib/Headers/stdint.h
index bb81a6a..ecd1bbb 100644
--- a/lib/Headers/stdint.h
+++ b/lib/Headers/stdint.h
@@ -221,8 +221,10 @@
/* C99 7.18.1.5 Greatest-width integer types.
*/
-typedef __INTMAX_TYPE__ intmax_t;
-typedef __UINTMAX_TYPE__ uintmax_t;
+#define __stdint_join3(a,b,c) a ## b ## c
+#define __stdint_exjoin3(a,b,c) __stdint_join3(a,b,c)
+typedef __stdint_exjoin3( int, __INTMAX_WIDTH__, _t) intmax_t;
+typedef __stdint_exjoin3(uint, __INTMAX_WIDTH__, _t) uintmax_t;
/* C99 7.18.4 Macros for minimum-width integer constants.
*
diff --git a/test/Preprocessor/stdint.c b/test/Preprocessor/stdint.c
index 641f704..0786f28 100644
--- a/test/Preprocessor/stdint.c
+++ b/test/Preprocessor/stdint.c
@@ -31,8 +31,8 @@
// ARM:typedef long int intptr_t;
// ARM:typedef unsigned long int uintptr_t;
//
-// ARM:typedef long long int intmax_t;
-// ARM:typedef long long unsigned int uintmax_t;
+// ARM:typedef int64_t intmax_t;
+// ARM:typedef uint64_t uintmax_t;
//
// ARM:INT8_MAX_ 127
// ARM:INT8_MIN_ (-127 -1)
@@ -139,8 +139,8 @@
// BFIN:typedef long int intptr_t;
// BFIN:typedef unsigned long int uintptr_t;
//
-// BFIN:typedef long long int intmax_t;
-// BFIN:typedef long long unsigned int uintmax_t;
+// BFIN:typedef int64_t intmax_t;
+// BFIN:typedef uint64_t uintmax_t;
//
// BFIN:INT8_MAX_ 127
// BFIN:INT8_MIN_ (-127 -1)
@@ -247,8 +247,8 @@
// I386:typedef int intptr_t;
// I386:typedef unsigned int uintptr_t;
//
-// I386:typedef long long int intmax_t;
-// I386:typedef long long unsigned int uintmax_t;
+// I386:typedef int64_t intmax_t;
+// I386:typedef uint64_t uintmax_t;
//
// I386:INT8_MAX_ 127
// I386:INT8_MIN_ (-127 -1)
@@ -347,8 +347,8 @@
// MSP430:typedef short intptr_t;
// MSP430:typedef unsigned short uintptr_t;
//
-// MSP430:typedef long int intmax_t;
-// MSP430:typedef long unsigned int uintmax_t;
+// MSP430:typedef int32_t intmax_t;
+// MSP430:typedef uint32_t uintmax_t;
//
// MSP430:INT8_MAX_ 127
// MSP430:INT8_MIN_ (-127 -1)
@@ -447,8 +447,8 @@
// PIC16:typedef short intptr_t;
// PIC16:typedef unsigned short uintptr_t;
//
-// PIC16:typedef long int intmax_t;
-// PIC16:typedef long unsigned int uintmax_t;
+// PIC16:typedef int32_t intmax_t;
+// PIC16:typedef uint32_t uintmax_t;
//
// PIC16:INT8_MAX_ 127
// PIC16:INT8_MIN_ (-127 -1)
@@ -554,8 +554,8 @@
// PPC64:typedef long int intptr_t;
// PPC64:typedef unsigned long int uintptr_t;
//
-// PPC64:typedef long int intmax_t;
-// PPC64:typedef long unsigned int uintmax_t;
+// PPC64:typedef int64_t intmax_t;
+// PPC64:typedef uint64_t uintmax_t;
//
// PPC64:INT8_MAX_ 127
// PPC64:INT8_MIN_ (-127 -1)
@@ -662,8 +662,8 @@
// PPC:typedef long int intptr_t;
// PPC:typedef unsigned long int uintptr_t;
//
-// PPC:typedef long long int intmax_t;
-// PPC:typedef long long unsigned int uintmax_t;
+// PPC:typedef int64_t intmax_t;
+// PPC:typedef uint64_t uintmax_t;
//
// PPC:INT8_MAX_ 127
// PPC:INT8_MIN_ (-127 -1)
@@ -769,8 +769,8 @@
// S390X:typedef long int intptr_t;
// S390X:typedef unsigned long int uintptr_t;
//
-// S390X:typedef long long int intmax_t;
-// S390X:typedef long long unsigned int uintmax_t;
+// S390X:typedef int64_t intmax_t;
+// S390X:typedef uint64_t uintmax_t;
//
// S390X:INT8_MAX_ 127
// S390X:INT8_MIN_ (-127 -1)
@@ -876,8 +876,8 @@
// SPARC:typedef long int intptr_t;
// SPARC:typedef unsigned long int uintptr_t;
//
-// SPARC:typedef long long int intmax_t;
-// SPARC:typedef long long unsigned int uintmax_t;
+// SPARC:typedef int64_t intmax_t;
+// SPARC:typedef uint64_t uintmax_t;
//
// SPARC:INT8_MAX_ 127
// SPARC:INT8_MIN_ (-127 -1)
@@ -976,8 +976,8 @@
// TCE:typedef int intptr_t;
// TCE:typedef unsigned int uintptr_t;
//
-// TCE:typedef long int intmax_t;
-// TCE:typedef long unsigned int uintmax_t;
+// TCE:typedef int32_t intmax_t;
+// TCE:typedef uint32_t uintmax_t;
//
// TCE:INT8_MAX_ 127
// TCE:INT8_MIN_ (-127 -1)
@@ -1084,8 +1084,8 @@
// X86_64:typedef long int intptr_t;
// X86_64:typedef unsigned long int uintptr_t;
//
-// X86_64:typedef long int intmax_t;
-// X86_64:typedef long unsigned int uintmax_t;
+// X86_64:typedef int64_t intmax_t;
+// X86_64:typedef uint64_t uintmax_t;
//
// X86_64:INT8_MAX_ 127
// X86_64:INT8_MIN_ (-127 -1)