summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorJoerg Sonnenberger <joerg@bec.de>2014-07-15 11:51:38 +0000
committerJoerg Sonnenberger <joerg@bec.de>2014-07-15 11:51:38 +0000
commit62277b37dbe479538fe42761562e76ea87762941 (patch)
treeb6f372a13abe43d47bfac0b2250751b0acb5b57c /clang
parent04b8b37f564bdddd758348df8e844f40f2d1627b (diff)
downloadbcm5719-llvm-62277b37dbe479538fe42761562e76ea87762941.tar.gz
bcm5719-llvm-62277b37dbe479538fe42761562e76ea87762941.zip
Make sure int64_t and uint64_t are consistent.
llvm-svn: 213065
Diffstat (limited to 'clang')
-rw-r--r--clang/include/clang/Basic/TargetInfo.h3
-rw-r--r--clang/lib/Frontend/InitPreprocessor.cpp4
-rw-r--r--clang/test/Preprocessor/init.c36
3 files changed, 23 insertions, 20 deletions
diff --git a/clang/include/clang/Basic/TargetInfo.h b/clang/include/clang/Basic/TargetInfo.h
index ce9791498a5..29e835014c4 100644
--- a/clang/include/clang/Basic/TargetInfo.h
+++ b/clang/include/clang/Basic/TargetInfo.h
@@ -221,6 +221,9 @@ public:
IntType getChar16Type() const { return Char16Type; }
IntType getChar32Type() const { return Char32Type; }
IntType getInt64Type() const { return Int64Type; }
+ IntType getUInt64Type() const {
+ return getCorrespondingUnsignedType(Int64Type);
+ }
IntType getSigAtomicType() const { return SigAtomicType; }
IntType getProcessIDType() const { return ProcessIDType; }
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp
index 64b068dc75a..b53fff9afc2 100644
--- a/clang/lib/Frontend/InitPreprocessor.cpp
+++ b/clang/lib/Frontend/InitPreprocessor.cpp
@@ -232,7 +232,7 @@ static void DefineExactWidthIntType(TargetInfo::IntType Ty,
// Use the target specified int64 type, when appropriate, so that [u]int64_t
// ends up being defined in terms of the correct type.
if (TypeWidth == 64)
- Ty = IsSigned ? TI.getInt64Type() : TI.getIntTypeByWidth(64, false);
+ Ty = IsSigned ? TI.getInt64Type() : TI.getUInt64Type();
const char *Prefix = IsSigned ? "__INT" : "__UINT";
@@ -254,7 +254,7 @@ static void DefineExactWidthIntTypeSize(TargetInfo::IntType Ty,
// Use the target specified int64 type, when appropriate, so that [u]int64_t
// ends up being defined in terms of the correct type.
if (TypeWidth == 64)
- Ty = IsSigned ? TI.getInt64Type() : TI.getIntTypeByWidth(64, false);
+ Ty = IsSigned ? TI.getInt64Type() : TI.getUInt64Type();
const char *Prefix = IsSigned ? "__INT" : "__UINT";
DefineTypeSize(Prefix + Twine(TypeWidth) + "_MAX__", Ty, TI, Builder);
diff --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c
index 3c9caa15359..dcf9b7c6d68 100644
--- a/clang/test/Preprocessor/init.c
+++ b/clang/test/Preprocessor/init.c
@@ -749,9 +749,9 @@
// AARCH64-NETBSD:#define __UINT32_C_SUFFIX__ U
// AARCH64-NETBSD:#define __UINT32_MAX__ 4294967295U
// AARCH64-NETBSD:#define __UINT32_TYPE__ unsigned int
-// AARCH64-NETBSD:#define __UINT64_C_SUFFIX__ UL
-// AARCH64-NETBSD:#define __UINT64_MAX__ 18446744073709551615UL
-// AARCH64-NETBSD:#define __UINT64_TYPE__ long unsigned int
+// AARCH64-NETBSD:#define __UINT64_C_SUFFIX__ ULL
+// AARCH64-NETBSD:#define __UINT64_MAX__ 18446744073709551615ULL
+// AARCH64-NETBSD:#define __UINT64_TYPE__ long long unsigned int
// AARCH64-NETBSD:#define __UINT8_C_SUFFIX__ U
// AARCH64-NETBSD:#define __UINT8_MAX__ 255U
// AARCH64-NETBSD:#define __UINT8_TYPE__ unsigned char
@@ -2881,9 +2881,9 @@
// MIPS64BE:#define __UINT32_C_SUFFIX__ U
// MIPS64BE:#define __UINT32_MAX__ 4294967295U
// MIPS64BE:#define __UINT32_TYPE__ unsigned int
-// MIPS64BE:#define __UINT64_C_SUFFIX__ UL
-// MIPS64BE:#define __UINT64_MAX__ 18446744073709551615UL
-// MIPS64BE:#define __UINT64_TYPE__ long unsigned int
+// MIPS64BE:#define __UINT64_C_SUFFIX__ ULL
+// MIPS64BE:#define __UINT64_MAX__ 18446744073709551615ULL
+// MIPS64BE:#define __UINT64_TYPE__ long long unsigned int
// MIPS64BE:#define __UINT8_C_SUFFIX__ U
// MIPS64BE:#define __UINT8_MAX__ 255U
// MIPS64BE:#define __UINT8_TYPE__ unsigned char
@@ -3082,9 +3082,9 @@
// MIPS64EL:#define __UINT32_C_SUFFIX__ U
// MIPS64EL:#define __UINT32_MAX__ 4294967295U
// MIPS64EL:#define __UINT32_TYPE__ unsigned int
-// MIPS64EL:#define __UINT64_C_SUFFIX__ UL
-// MIPS64EL:#define __UINT64_MAX__ 18446744073709551615UL
-// MIPS64EL:#define __UINT64_TYPE__ long unsigned int
+// MIPS64EL:#define __UINT64_C_SUFFIX__ ULL
+// MIPS64EL:#define __UINT64_MAX__ 18446744073709551615ULL
+// MIPS64EL:#define __UINT64_TYPE__ long long unsigned int
// MIPS64EL:#define __UINT8_C_SUFFIX__ U
// MIPS64EL:#define __UINT8_MAX__ 255U
// MIPS64EL:#define __UINT8_TYPE__ unsigned char
@@ -3618,9 +3618,9 @@
// NVPTX32:#define __UINT32_C_SUFFIX__ U
// NVPTX32:#define __UINT32_MAX__ 4294967295U
// NVPTX32:#define __UINT32_TYPE__ unsigned int
-// NVPTX32:#define __UINT64_C_SUFFIX__ UL
-// NVPTX32:#define __UINT64_MAX__ 18446744073709551615UL
-// NVPTX32:#define __UINT64_TYPE__ long unsigned int
+// NVPTX32:#define __UINT64_C_SUFFIX__ ULL
+// NVPTX32:#define __UINT64_MAX__ 18446744073709551615ULL
+// NVPTX32:#define __UINT64_TYPE__ long long unsigned int
// NVPTX32:#define __UINT8_C_SUFFIX__ U
// NVPTX32:#define __UINT8_MAX__ 255U
// NVPTX32:#define __UINT8_TYPE__ unsigned char
@@ -3798,9 +3798,9 @@
// NVPTX64:#define __UINT32_C_SUFFIX__ U
// NVPTX64:#define __UINT32_MAX__ 4294967295U
// NVPTX64:#define __UINT32_TYPE__ unsigned int
-// NVPTX64:#define __UINT64_C_SUFFIX__ UL
-// NVPTX64:#define __UINT64_MAX__ 18446744073709551615UL
-// NVPTX64:#define __UINT64_TYPE__ long unsigned int
+// NVPTX64:#define __UINT64_C_SUFFIX__ ULL
+// NVPTX64:#define __UINT64_MAX__ 18446744073709551615ULL
+// NVPTX64:#define __UINT64_TYPE__ long long unsigned int
// NVPTX64:#define __UINT8_C_SUFFIX__ U
// NVPTX64:#define __UINT8_MAX__ 255U
// NVPTX64:#define __UINT8_TYPE__ unsigned char
@@ -5483,9 +5483,9 @@
// S390X:#define __UINT32_C_SUFFIX__ U
// S390X:#define __UINT32_MAX__ 4294967295U
// S390X:#define __UINT32_TYPE__ unsigned int
-// S390X:#define __UINT64_C_SUFFIX__ UL
-// S390X:#define __UINT64_MAX__ 18446744073709551615UL
-// S390X:#define __UINT64_TYPE__ long unsigned int
+// S390X:#define __UINT64_C_SUFFIX__ ULL
+// S390X:#define __UINT64_MAX__ 18446744073709551615ULL
+// S390X:#define __UINT64_TYPE__ long long unsigned int
// S390X:#define __UINT8_C_SUFFIX__ U
// S390X:#define __UINT8_MAX__ 255U
// S390X:#define __UINT8_TYPE__ unsigned char
OpenPOWER on IntegriCloud