diff options
author | Chris Lattner <sabre@nondot.org> | 2009-04-11 19:34:56 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-04-11 19:34:56 +0000 |
commit | 9713a1c91d50e2bc5848716714f98fbb60de185f (patch) | |
tree | af23fb2ba0e2e56970577e07e0ddd23890ecfbb8 /clang/lib/Sema/SemaDecl.cpp | |
parent | 6de05080e43fa61affdbfa46213df33d8761a370 (diff) | |
download | bcm5719-llvm-9713a1c91d50e2bc5848716714f98fbb60de185f.tar.gz bcm5719-llvm-9713a1c91d50e2bc5848716714f98fbb60de185f.zip |
simplify code to use adjustParameterType, apply objc arg attributes
to their arguments.
llvm-svn: 68876
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index d3f24cae90d..278d8ecd901 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -2704,12 +2704,6 @@ Sema::ActOnParamDeclarator(Scope *S, Declarator &D) { if (D.getInvalidType()) New->setInvalidDecl(); - // Parameter declarators cannot be qualified (C++ [dcl.meaning]p1). - if (D.getCXXScopeSpec().isSet()) { - Diag(D.getIdentifierLoc(), diag::err_qualified_param_declarator) - << D.getCXXScopeSpec().getRange(); - New->setInvalidDecl(); - } // Parameter declarators cannot be interface types. All ObjC objects are // passed by reference. if (T->isObjCInterfaceType()) { @@ -2717,6 +2711,13 @@ Sema::ActOnParamDeclarator(Scope *S, Declarator &D) { diag::err_object_cannot_be_passed_returned_by_value) << 1 << T; New->setInvalidDecl(); } + + // Parameter declarators cannot be qualified (C++ [dcl.meaning]p1). + if (D.getCXXScopeSpec().isSet()) { + Diag(D.getIdentifierLoc(), diag::err_qualified_param_declarator) + << D.getCXXScopeSpec().getRange(); + New->setInvalidDecl(); + } // Add the parameter declaration into this scope. S->AddDecl(DeclPtrTy::make(New)); |