diff options
author | Anders Carlsson <andersca@mac.com> | 2009-04-18 20:20:22 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-04-18 20:20:22 +0000 |
commit | af23f69aa6247e6bd20a66b2e16babb91f192535 (patch) | |
tree | e57feb5fcdc011cffadc0110f88be6424e32ab48 /lib/CodeGen/CGCall.cpp | |
parent | 6ea8e2152e1ba93b4c80e7268403a582896dc3dc (diff) |
Make CodeGenFunction::EmitCallArgs a template function that takes a generic "Type Info" parameter. The type info parameter knows how to iterate over its arguments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69469 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGCall.cpp')
-rw-r--r-- | lib/CodeGen/CGCall.cpp | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/lib/CodeGen/CGCall.cpp b/lib/CodeGen/CGCall.cpp index e6474cb9ee..d17ab13446 100644 --- a/lib/CodeGen/CGCall.cpp +++ b/lib/CodeGen/CGCall.cpp @@ -1935,38 +1935,6 @@ RValue CodeGenFunction::EmitCallArg(const Expr *E, QualType ArgType) { return EmitAnyExprToTemp(E); } -void CodeGenFunction::EmitCallArgs(CallArgList& Args, - const FunctionProtoType *FPT, - CallExpr::const_arg_iterator ArgBeg, - CallExpr::const_arg_iterator ArgEnd) { - CallExpr::const_arg_iterator Arg = ArgBeg; - - // First, use the function argument types. - if (FPT) { - for (FunctionProtoType::arg_type_iterator I = FPT->arg_type_begin(), - E = FPT->arg_type_end(); I != E; ++I, ++Arg) { - assert(getContext().getCanonicalType(I->getNonReferenceType()). - getTypePtr() == - getContext().getCanonicalType(Arg->getType()).getTypePtr() && - "type mismatch in call argument!"); - - QualType ArgType = *I; - Args.push_back(std::make_pair(EmitCallArg(*Arg, ArgType), - ArgType)); - } - - assert(Arg == ArgEnd || FPT->isVariadic() && - "Extra arguments in non-variadic function!"); - } - - // If we still have any arguments, emit them using the type of the argument. - for (; Arg != ArgEnd; ++Arg) { - QualType ArgType = Arg->getType(); - Args.push_back(std::make_pair(EmitCallArg(*Arg, ArgType), - ArgType)); - } -} - RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo, llvm::Value *Callee, const CallArgList &CallArgs, |