summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorYaxun Liu <Yaxun.Liu@amd.com>2016-08-19 05:17:25 +0000
committerYaxun Liu <Yaxun.Liu@amd.com>2016-08-19 05:17:25 +0000
commit26f7566ff871cf249f3c4d077afeb79ab2eef670 (patch)
tree20f76331f177082a343d018d605061e2378a79e3 /clang/lib/Basic
parentd6c7036e42fea391b46841d91c1de38c5ccd477d (diff)
downloadbcm5719-llvm-26f7566ff871cf249f3c4d077afeb79ab2eef670.tar.gz
bcm5719-llvm-26f7566ff871cf249f3c4d077afeb79ab2eef670.zip
Re-commit [OpenCL] AMDGCN: Fix size_t type
There was a premature cast to pointer type in emitPointerArithmetic which caused assertion in tests with assertion enabled. llvm-svn: 279206
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/TargetInfo.cpp5
-rw-r--r--clang/lib/Basic/Targets.cpp4
2 files changed, 7 insertions, 2 deletions
diff --git a/clang/lib/Basic/TargetInfo.cpp b/clang/lib/Basic/TargetInfo.cpp
index dec8b7cda4e..592b877fadd 100644
--- a/clang/lib/Basic/TargetInfo.cpp
+++ b/clang/lib/Basic/TargetInfo.cpp
@@ -306,8 +306,9 @@ void TargetInfo::adjust(const LangOptions &Opts) {
}
LongDoubleWidth = LongDoubleAlign = 128;
- assert(PointerWidth == 32 || PointerWidth == 64);
- bool Is32BitArch = PointerWidth == 32;
+ unsigned MaxPointerWidth = getMaxPointerWidth();
+ assert(MaxPointerWidth == 32 || MaxPointerWidth == 64);
+ bool Is32BitArch = MaxPointerWidth == 32;
SizeType = Is32BitArch ? UnsignedInt : UnsignedLong;
PtrDiffType = Is32BitArch ? SignedInt : SignedLong;
IntPtrType = Is32BitArch ? SignedInt : SignedLong;
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 793b25e9287..36e6d4594fa 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -2004,6 +2004,10 @@ public:
}
}
+ uint64_t getMaxPointerWidth() const override {
+ return getTriple().getArch() == llvm::Triple::amdgcn ? 64 : 32;
+ }
+
const char * getClobbers() const override {
return "";
}
OpenPOWER on IntegriCloud