Index: lib/Target/Mips/MipsISelLowering.h =================================================================== --- lib/Target/Mips/MipsISelLowering.h +++ lib/Target/Mips/MipsISelLowering.h @@ -353,7 +353,7 @@ CCState &Info); void analyzeCallOperands(const SmallVectorImpl &Outs, - bool IsVarArg, const SDNode *CallNode, + const SDNode *CallNode, std::vector &FuncArgs, CCState &State); Index: lib/Target/Mips/MipsISelLowering.cpp =================================================================== --- lib/Target/Mips/MipsISelLowering.cpp +++ lib/Target/Mips/MipsISelLowering.cpp @@ -2602,8 +2602,7 @@ MipsCC MipsCCInfo(CallConv, Subtarget, CCInfo); CCInfo.PreAnalyzeCallOperandsForF128_(Outs, CLI.getArgs(), Callee.getNode()); - MipsCCInfo.analyzeCallOperands(Outs, IsVarArg, Callee.getNode(), - CLI.getArgs(), CCInfo); + MipsCCInfo.analyzeCallOperands(Outs, Callee.getNode(), CLI.getArgs(), CCInfo); CCInfo.ClearOriginalArgWasF128(); // Get a count of how many bytes are to be pushed on the stack. @@ -3608,12 +3607,11 @@ } void MipsTargetLowering::MipsCC::analyzeCallOperands( - const SmallVectorImpl &Args, bool IsVarArg, - const SDNode *CallNode, std::vector &FuncArgs, - CCState &State) { + const SmallVectorImpl &Args, const SDNode *CallNode, + std::vector &FuncArgs, CCState &State) { MipsCC::SpecialCallingConvType SpecialCallingConv = getSpecialCallingConv(CallNode); - assert((CallConv != CallingConv::Fast || !IsVarArg) && + assert((CallConv != CallingConv::Fast || !State.isVarArg()) && "CallingConv::Fast shouldn't be used for vararg functions."); unsigned NumOpnds = Args.size(); @@ -3627,7 +3625,7 @@ ISD::ArgFlagsTy ArgFlags = Args[I].Flags; bool R; - if (IsVarArg && !Args[I].IsFixed) + if (State.isVarArg() && !Args[I].IsFixed) R = CC_Mips_VarArg(I, ArgVT, ArgVT, CCValAssign::Full, ArgFlags, State); else R = FixedFn(I, ArgVT, ArgVT, CCValAssign::Full, ArgFlags, State);