diff options
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/CallingConvLower.cpp')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/CallingConvLower.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/CallingConvLower.cpp b/llvm/lib/CodeGen/SelectionDAG/CallingConvLower.cpp index a6f52dd0244..c0077793d0e 100644 --- a/llvm/lib/CodeGen/SelectionDAG/CallingConvLower.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/CallingConvLower.cpp @@ -126,7 +126,10 @@ void CCState::AnalyzeCallOperands(SmallVectorImpl<MVT> &ArgVTs, void CCState::AnalyzeCallResult(CallSDNode *TheCall, CCAssignFn Fn) { for (unsigned i = 0, e = TheCall->getNumRetVals(); i != e; ++i) { MVT VT = TheCall->getRetValType(i); - if (Fn(i, VT, VT, CCValAssign::Full, ISD::ArgFlagsTy(), *this)) { + ISD::ArgFlagsTy Flags = ISD::ArgFlagsTy(); + if (TheCall->isInreg()) + Flags.setInReg(); + if (Fn(i, VT, VT, CCValAssign::Full, Flags, *this)) { cerr << "Call result #" << i << " has unhandled type " << VT.getMVTString() << "\n"; abort(); |