[PATCH] D63905: Fix ASAN error caused by commit r364512
Rumeet Dhindsa via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 27 16:17:48 PDT 2019
rdhindsa created this revision.
rdhindsa added a reviewer: dblaikie.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.
This patch intends to fix ASAN stack-use-after-scope error. This error was introduced with commit r364512.
Repository:
rL LLVM
https://reviews.llvm.org/D63905
Files:
llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
Index: llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
===================================================================
--- llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+++ llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
@@ -1560,14 +1560,16 @@
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;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63905.206959.patch
Type: text/x-patch
Size: 1211 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190627/bbb15f2a/attachment.bin>
More information about the llvm-commits
mailing list