summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExpr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Sema/SemaExpr.cpp')
-rw-r--r--clang/lib/Sema/SemaExpr.cpp31
1 files changed, 16 insertions, 15 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index d01516c77fe..09e1d6f4551 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -3181,21 +3181,22 @@ bool Sema::GatherArgumentsForCall(SourceLocation CallLoc,
<< Arg->getSourceRange()))
return true;
- // Pass the argument.
- if (FDecl && i < FDecl->getNumParams()) {
- ParmVarDecl *Param = FDecl->getParamDecl(i);
- InitializedEntity Entity =InitializedEntity::InitializeParameter(Param);
- OwningExprResult ArgE = PerformCopyInitialization(Entity,
- SourceLocation(),
- Owned(Arg));
- if (ArgE.isInvalid())
- return true;
-
- Arg = ArgE.takeAs<Expr>();
- } else {
- if (PerformCopyInitialization(Arg, ProtoArgType, AA_Passing))
- return true;
- }
+ // Pass the argument
+ ParmVarDecl *Param = 0;
+ if (FDecl && i < FDecl->getNumParams())
+ Param = FDecl->getParamDecl(i);
+
+
+ InitializedEntity Entity =
+ Param? InitializedEntity::InitializeParameter(Param)
+ : InitializedEntity::InitializeParameter(ProtoArgType);
+ OwningExprResult ArgE = PerformCopyInitialization(Entity,
+ SourceLocation(),
+ Owned(Arg));
+ if (ArgE.isInvalid())
+ return true;
+
+ Arg = ArgE.takeAs<Expr>();
if (!ProtoArgType->isReferenceType())
Arg = MaybeBindToTemporary(Arg).takeAs<Expr>();
OpenPOWER on IntegriCloud