diff options
| author | Yaxun Liu <Yaxun.Liu@amd.com> | 2016-08-19 05:17:25 +0000 |
|---|---|---|
| committer | Yaxun Liu <Yaxun.Liu@amd.com> | 2016-08-19 05:17:25 +0000 |
| commit | 26f7566ff871cf249f3c4d077afeb79ab2eef670 (patch) | |
| tree | 20f76331f177082a343d018d605061e2378a79e3 /clang/lib/Basic | |
| parent | d6c7036e42fea391b46841d91c1de38c5ccd477d (diff) | |
| download | bcm5719-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.cpp | 5 | ||||
| -rw-r--r-- | clang/lib/Basic/Targets.cpp | 4 |
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 ""; } |

