diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2010-04-08 00:30:06 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-04-08 00:30:06 +0000 |
| commit | 60462098d424928f932582aa16dddaedda321151 (patch) | |
| tree | 6f5a570e3ec12e129a54d7f9ad91e7261d0ef0db /clang/lib/Sema/SemaExprObjC.cpp | |
| parent | 79f67a7495057878a1a3711859596611b0364c57 (diff) | |
| download | bcm5719-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.cpp | 10 |
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++) { |

