summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-04-11 19:34:56 +0000
committerChris Lattner <sabre@nondot.org>2009-04-11 19:34:56 +0000
commit9713a1c91d50e2bc5848716714f98fbb60de185f (patch)
treeaf23fb2ba0e2e56970577e07e0ddd23890ecfbb8 /clang/lib/Sema/SemaDecl.cpp
parent6de05080e43fa61affdbfa46213df33d8761a370 (diff)
downloadbcm5719-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.cpp13
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));
OpenPOWER on IntegriCloud