]> granicus.if.org Git - clang/commitdiff
Use the new EmitCallArgs function. No indented functionality change.
authorAnders Carlsson <andersca@mac.com>
Wed, 8 Apr 2009 23:13:16 +0000 (23:13 +0000)
committerAnders Carlsson <andersca@mac.com>
Wed, 8 Apr 2009 23:13:16 +0000 (23:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68652 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGBlocks.cpp
lib/CodeGen/CGCXX.cpp
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CGObjC.cpp

index 74b6af1425e471c3b739747dce216d713c1096c9..a623cf18cf9b430de5a9af543f7f3f22441ae46d 100644 (file)
@@ -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 = 
index 217f63a9df4e34c61f99a2925042e1afcaf0e115..24b4a28299308f1eb4aea7c9e5cbb8ea230b3a27 100644 (file)
@@ -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), 
index 4a7171ebd850188505be1efe0a8f14dae7aad71a..e1cb1d17ec0aae2c4e5620cff68cc2b65dadefb8 100644 (file)
@@ -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);
index 4db29ce05d08df6ce63e274d549a490e48ba7038..487da7a603dbf9fb5c24fef2713b37c5dc7d68f0 100644 (file)
@@ -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)