Fixed a crash because we weren't generating
authorSean Callanan <scallanan@apple.com>
Mon, 6 Apr 2015 23:51:08 +0000 (23:51 +0000)
committerSean Callanan <scallanan@apple.com>
Mon, 6 Apr 2015 23:51:08 +0000 (23:51 +0000)
type-safe relocations against @reloc_placeholder.

<rdar://problem/20438754>

llvm-svn: 234260

lldb/source/Expression/IRForTarget.cpp

index ca20afc..8422726 100644 (file)
@@ -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