diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp index 21657827a93..0f66bd9d171 100644 --- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp @@ -737,7 +737,11 @@ bool IRTranslator::translateInvoke(const User &U, for (auto &Arg: I.arg_operands()) Args.emplace_back(getOrCreateVReg(*Arg), Arg->getType()); - if (!CLI->lowerCall(MIRBuilder, MachineOperand::CreateGA(Fn, 0), + auto CalleeMO = + Fn ? MachineOperand::CreateGA(Fn, 0) + : MachineOperand::CreateReg(getOrCreateVReg(*Callee), false); + + if (!CLI->lowerCall(MIRBuilder, CalleeMO, CallLowering::ArgInfo(Res, I.getType()), Args)) return false; |

