summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2015-04-06 23:51:08 +0000
committerSean Callanan <scallanan@apple.com>2015-04-06 23:51:08 +0000
commita85f0e82dc17687fea7534bee70ffd387d7a6953 (patch)
treec09496fd625c07487a683c5330f66f636501842f
parent430220f0a772bb1c17c4fc55055024c625c3b4d3 (diff)
downloadbcm5719-llvm-a85f0e82dc17687fea7534bee70ffd387d7a6953.tar.gz
bcm5719-llvm-a85f0e82dc17687fea7534bee70ffd387d7a6953.zip
Fixed a crash because we weren't generating
type-safe relocations against @reloc_placeholder. <rdar://problem/20438754> llvm-svn: 234260
-rw-r--r--lldb/source/Expression/IRForTarget.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/lldb/source/Expression/IRForTarget.cpp b/lldb/source/Expression/IRForTarget.cpp
index ca20afc7d47..84227260269 100644
--- a/lldb/source/Expression/IRForTarget.cpp
+++ b/lldb/source/Expression/IRForTarget.cpp
@@ -2455,10 +2455,11 @@ IRForTarget::BuildRelocation(llvm::Type *type, uint64_t offset)
llvm::ArrayRef<llvm::Constant *> offsets(offset_array, 1);
- llvm::Constant *reloc_getelementptr = ConstantExpr::getGetElementPtr(type, m_reloc_placeholder, offsets);
- llvm::Constant *reloc_getbitcast = ConstantExpr::getBitCast(reloc_getelementptr, type);
+ llvm::Constant *reloc_placeholder_bitcast = ConstantExpr::getBitCast(m_reloc_placeholder, type->getPointerTo());
+ llvm::Constant *reloc_getelementptr = ConstantExpr::getGetElementPtr(type, reloc_placeholder_bitcast, offsets);
+ llvm::Constant *reloc_bitcast = ConstantExpr::getBitCast(reloc_getelementptr, type);
- return reloc_getbitcast;
+ return reloc_bitcast;
}
bool
OpenPOWER on IntegriCloud