summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExprObjC.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-04-08 00:30:06 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-04-08 00:30:06 +0000
commit60462098d424928f932582aa16dddaedda321151 (patch)
tree6f5a570e3ec12e129a54d7f9ad91e7261d0ef0db /clang/lib/Sema/SemaExprObjC.cpp
parent79f67a7495057878a1a3711859596611b0364c57 (diff)
downloadbcm5719-llvm-60462098d424928f932582aa16dddaedda321151.tar.gz
bcm5719-llvm-60462098d424928f932582aa16dddaedda321151.zip
Patch to implement gcc's cstyle arguments in objc
methods. wip. llvm-svn: 100734
Diffstat (limited to 'clang/lib/Sema/SemaExprObjC.cpp')
-rw-r--r--clang/lib/Sema/SemaExprObjC.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaExprObjC.cpp b/clang/lib/Sema/SemaExprObjC.cpp
index d5a22ca15fa..99db910a90e 100644
--- a/clang/lib/Sema/SemaExprObjC.cpp
+++ b/clang/lib/Sema/SemaExprObjC.cpp
@@ -182,7 +182,15 @@ bool Sema::CheckMessageArgumentTypes(Expr **Args, unsigned NumArgs,
ReturnType = Method->getResultType();
unsigned NumNamedArgs = Sel.getNumArgs();
- assert(NumArgs >= NumNamedArgs && "Too few arguments for selector!");
+ // Method might have more arguments than selector indicates. This is due
+ // to addition of c-style arguments in method.
+ if (Method->param_size() > Sel.getNumArgs())
+ NumNamedArgs = Method->param_size();
+ // FIXME. This need be cleaned up.
+ if (NumArgs < NumNamedArgs) {
+ Diag(lbrac, diag::err_typecheck_call_too_few_args) << 2;
+ return false;
+ }
bool IsError = false;
for (unsigned i = 0; i < NumNamedArgs; i++) {
OpenPOWER on IntegriCloud