summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-10-26 05:45:40 +0000
committerDouglas Gregor <dgregor@apple.com>2010-10-26 05:45:40 +0000
commit83025414013042c861ab96819a1c64ec375c4acd (patch)
treeb65dae1873d58d6bf6ab192e6f963707f65df412
parent4bb599cf7d48157f9728deb945b851b8e29b3325 (diff)
downloadbcm5719-llvm-83025414013042c861ab96819a1c64ec375c4acd.tar.gz
bcm5719-llvm-83025414013042c861ab96819a1c64ec375c4acd.zip
Delay complete-type checking for arguments to no-prototype functions
until after we've checked/promoted the argument. Hopefully fixes the Emacs regression due to my recent change that expanded type-checking in the presence of K&R function definitions. llvm-svn: 117353
-rw-r--r--clang/lib/Sema/SemaExpr.cpp18
1 files changed, 6 insertions, 12 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index 0510bd2ed86..f8c7a90f8f4 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -3858,12 +3858,6 @@ Sema::BuildResolvedCallExpr(Expr *Fn, NamedDecl *NDecl,
Expr *Arg = Args[i];
if (Proto && i < Proto->getNumArgs()) {
- if (RequireCompleteType(Arg->getSourceRange().getBegin(),
- Arg->getType(),
- PDiag(diag::err_call_incomplete_argument)
- << Arg->getSourceRange()))
- return ExprError();
-
InitializedEntity Entity
= InitializedEntity::InitializeParameter(Context,
Proto->getArgType(i));
@@ -3877,14 +3871,14 @@ Sema::BuildResolvedCallExpr(Expr *Fn, NamedDecl *NDecl,
} else {
DefaultArgumentPromotion(Arg);
-
- if (RequireCompleteType(Arg->getSourceRange().getBegin(),
- Arg->getType(),
- PDiag(diag::err_call_incomplete_argument)
- << Arg->getSourceRange()))
- return ExprError();
}
+ if (RequireCompleteType(Arg->getSourceRange().getBegin(),
+ Arg->getType(),
+ PDiag(diag::err_call_incomplete_argument)
+ << Arg->getSourceRange()))
+ return ExprError();
+
TheCall->setArg(i, Arg);
}
}
OpenPOWER on IntegriCloud