summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorJustin Holewinski <jholewinski@nvidia.com>2015-02-02 21:05:49 +0000
committerJustin Holewinski <jholewinski@nvidia.com>2015-02-02 21:05:49 +0000
commitf37f3d35eb4f3bf4a69cfc4eedaea1caa43d096c (patch)
tree6d1f2af88524a58ee1fc703c471c4748c5326cbd /clang/lib/CodeGen/CodeGenModule.cpp
parent2f746d4c943a59626925ac625583ddc081b34388 (diff)
downloadbcm5719-llvm-f37f3d35eb4f3bf4a69cfc4eedaea1caa43d096c.tar.gz
bcm5719-llvm-f37f3d35eb4f3bf4a69cfc4eedaea1caa43d096c.zip
When generating llvm.used, we may need an addrspacecast instead of a bitcast.
Summary: This is especially important for targets that use multiple address spaces, and commonly place global variables in address spaces other than zero. Fixes PR22383 Test Plan: New test case added: llvm-used.cu Reviewers: jingyue Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7345 llvm-svn: 227861
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index c710b5bdad0..dc7ec6f6548 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -935,8 +935,8 @@ static void emitUsed(CodeGenModule &CGM, StringRef Name,
UsedArray.resize(List.size());
for (unsigned i = 0, e = List.size(); i != e; ++i) {
UsedArray[i] =
- llvm::ConstantExpr::getBitCast(cast<llvm::Constant>(&*List[i]),
- CGM.Int8PtrTy);
+ llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(
+ cast<llvm::Constant>(&*List[i]), CGM.Int8PtrTy);
}
if (UsedArray.empty())
OpenPOWER on IntegriCloud