aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-04-08 23:13:16 +0000
committerAnders Carlsson <andersca@mac.com>2009-04-08 23:13:16 +0000
commit782f397c1459ef7d8b910c0fb6b95c5f1c19c14f (patch)
tree7ae6d03c0f7cb48e1e2e94ade0ad8075b595f939 /lib
parent748dd20b55f64bc7e398a3f2210136581531fc7a (diff)
Use the new EmitCallArgs function. No indented functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68652 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/CodeGen/CGBlocks.cpp9
-rw-r--r--lib/CodeGen/CGCXX.cpp4
-rw-r--r--lib/CodeGen/CGExpr.cpp4
-rw-r--r--lib/CodeGen/CGObjC.cpp1
4 files changed, 7 insertions, 11 deletions
diff --git a/lib/CodeGen/CGBlocks.cpp b/lib/CodeGen/CGBlocks.cpp
index 74b6af1425..a623cf18cf 100644
--- a/lib/CodeGen/CGBlocks.cpp
+++ b/lib/CodeGen/CGBlocks.cpp
@@ -435,16 +435,15 @@ RValue CodeGenFunction::EmitBlockCallExpr(const CallExpr* E) {
CallArgList Args;
Args.push_back(std::make_pair(RValue::get(BlockLiteral), VoidPtrTy));
+ QualType FnType = BPT->getPointeeType();
+
// And the rest of the arguments.
- for (CallExpr::const_arg_iterator i = E->arg_begin(), e = E->arg_end();
- i != e; ++i)
- Args.push_back(std::make_pair(EmitAnyExprToTemp(*i),
- i->getType()));
+ EmitCallArgs(Args, FnType->getAsFunctionProtoType(),
+ E->arg_begin(), E->arg_end());
// Load the function.
llvm::Value *Func = Builder.CreateLoad(FuncPtr, false, "tmp");
- QualType FnType = BPT->getPointeeType();
QualType ResultType = FnType->getAsFunctionType()->getResultType();
const CGFunctionInfo &FnInfo =
diff --git a/lib/CodeGen/CGCXX.cpp b/lib/CodeGen/CGCXX.cpp
index 217f63a9df..24b4a28299 100644
--- a/lib/CodeGen/CGCXX.cpp
+++ b/lib/CodeGen/CGCXX.cpp
@@ -166,9 +166,7 @@ RValue CodeGenFunction::EmitCXXMemberCallExpr(const CXXMemberCallExpr *CE) {
Args.push_back(std::make_pair(RValue::get(BaseValue),
MD->getThisType(getContext())));
- for (CallExpr::const_arg_iterator I = CE->arg_begin(), E = CE->arg_end();
- I != E; ++I)
- Args.push_back(std::make_pair(EmitAnyExprToTemp(*I), I->getType()));
+ EmitCallArgs(Args, FPT, CE->arg_begin(), CE->arg_end());
QualType ResultType = MD->getType()->getAsFunctionType()->getResultType();
return EmitCall(CGM.getTypes().getFunctionInfo(ResultType, Args),
diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp
index 4a7171ebd8..e1cb1d17ec 100644
--- a/lib/CodeGen/CGExpr.cpp
+++ b/lib/CodeGen/CGExpr.cpp
@@ -1214,9 +1214,7 @@ RValue CodeGenFunction::EmitCallExpr(llvm::Value *Callee, QualType CalleeType,
QualType ResultType = FnType->getAsFunctionType()->getResultType();
CallArgList Args;
- for (CallExpr::const_arg_iterator I = ArgBeg; I != ArgEnd; ++I)
- Args.push_back(std::make_pair(EmitAnyExprToTemp(*I),
- I->getType()));
+ EmitCallArgs(Args, FnType->getAsFunctionProtoType(), ArgBeg, ArgEnd);
return EmitCall(CGM.getTypes().getFunctionInfo(ResultType, Args),
Callee, Args, TargetDecl);
diff --git a/lib/CodeGen/CGObjC.cpp b/lib/CodeGen/CGObjC.cpp
index 4db29ce05d..487da7a603 100644
--- a/lib/CodeGen/CGObjC.cpp
+++ b/lib/CodeGen/CGObjC.cpp
@@ -79,6 +79,7 @@ RValue CodeGenFunction::EmitObjCMessageExpr(const ObjCMessageExpr *E) {
Receiver = EmitScalarExpr(E->getReceiver());
}
+ // FIXME: This should use EmitCallArgs.
CallArgList Args;
for (CallExpr::const_arg_iterator i = E->arg_begin(), e = E->arg_end();
i != e; ++i)