summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorRumeet Dhindsa <rdhindsa@google.com>2019-06-27 23:37:04 +0000
committerRumeet Dhindsa <rdhindsa@google.com>2019-06-27 23:37:04 +0000
commitddc2804e1a5451ee8f24ce93aaf98dbce29b5961 (patch)
tree604ba85656431523280e934c09525ad392eba5fb /llvm/lib/CodeGen
parent4fcf0004fa7b34566391fda00f7c40d1c1605a8b (diff)
downloadbcm5719-llvm-ddc2804e1a5451ee8f24ce93aaf98dbce29b5961.tar.gz
bcm5719-llvm-ddc2804e1a5451ee8f24ce93aaf98dbce29b5961.zip
Fix ASAN error caused by commit r364512.
This patch intends to fix ASAN stack-use-after-scope error. This is at least a short-term fix to unbreak LLVM's mainline. Differential Revision: https://reviews.llvm.org/D63905 llvm-svn: 364611
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
index 0827db38934..031bf2dd84d 100644
--- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
@@ -1560,14 +1560,16 @@ bool IRTranslator::translateCall(const User &U, MachineIRBuilder &MIRBuilder) {
ArrayRef<Register> Res = getOrCreateVRegs(CI);
SmallVector<ArrayRef<Register>, 8> Args;
+ SmallVector<Register, 8> InVRegs;
Register SwiftErrorVReg = 0;
for (auto &Arg: CI.arg_operands()) {
if (CLI->supportSwiftError() && isSwiftError(Arg)) {
LLT Ty = getLLTForType(*Arg->getType(), *DL);
- Register InVReg = MRI->createGenericVirtualRegister(Ty);
- MIRBuilder.buildCopy(InVReg, SwiftError.getOrCreateVRegUseAt(
- &CI, &MIRBuilder.getMBB(), Arg));
- Args.push_back(InVReg);
+ InVRegs.push_back(MRI->createGenericVirtualRegister(Ty));
+ MIRBuilder.buildCopy(
+ InVRegs.back(),
+ SwiftError.getOrCreateVRegUseAt(&CI, &MIRBuilder.getMBB(), Arg));
+ Args.emplace_back(llvm::makeArrayRef(InVRegs.back()));
SwiftErrorVReg =
SwiftError.getOrCreateVRegDefAt(&CI, &MIRBuilder.getMBB(), Arg);
continue;
OpenPOWER on IntegriCloud