diff options
| author | Rumeet Dhindsa <rdhindsa@google.com> | 2019-06-27 23:37:04 +0000 |
|---|---|---|
| committer | Rumeet Dhindsa <rdhindsa@google.com> | 2019-06-27 23:37:04 +0000 |
| commit | ddc2804e1a5451ee8f24ce93aaf98dbce29b5961 (patch) | |
| tree | 604ba85656431523280e934c09525ad392eba5fb /llvm/lib/CodeGen | |
| parent | 4fcf0004fa7b34566391fda00f7c40d1c1605a8b (diff) | |
| download | bcm5719-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.cpp | 10 |
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; |

