diff options
author | John McCall <rjmccall@apple.com> | 2011-04-23 02:46:06 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2011-04-23 02:46:06 +0000 |
commit | d44f4d741c143e1e0cc0045c1dd95c7661398f42 (patch) | |
tree | 7621eeb975dcfaf66bc7cff4b41b46eb9600e73d /clang/lib/Sema/SemaDeclObjC.cpp | |
parent | 7e14f91dbd0c651e2add6384da4e88f510919822 (diff) | |
download | bcm5719-llvm-d44f4d741c143e1e0cc0045c1dd95c7661398f42.tar.gz bcm5719-llvm-d44f4d741c143e1e0cc0045c1dd95c7661398f42.zip |
Diagnose C++ abstract parameters for Objective-C methods.
llvm-svn: 130045
Diffstat (limited to 'clang/lib/Sema/SemaDeclObjC.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDeclObjC.cpp | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/clang/lib/Sema/SemaDeclObjC.cpp b/clang/lib/Sema/SemaDeclObjC.cpp index 01d37f47b2c..7429020126c 100644 --- a/clang/lib/Sema/SemaDeclObjC.cpp +++ b/clang/lib/Sema/SemaDeclObjC.cpp @@ -1803,17 +1803,9 @@ Decl *Sema::ActOnMethodDeclaration( ? DI->getTypeLoc().getBeginLoc() : ArgInfo[i].NameLoc; - ParmVarDecl* Param - = ParmVarDecl::Create(Context, ObjCMethod, - StartLoc, ArgInfo[i].NameLoc, ArgInfo[i].Name, - ArgType, DI, SC_None, SC_None, 0); - - if (ArgType->isObjCObjectType()) { - Diag(ArgInfo[i].NameLoc, - diag::err_object_cannot_be_passed_returned_by_value) - << 1 << ArgType; - Param->setInvalidDecl(); - } + ParmVarDecl* Param = CheckParameter(ObjCMethod, StartLoc, + ArgInfo[i].NameLoc, ArgInfo[i].Name, + ArgType, DI, SC_None, SC_None); Param->setObjCDeclQualifier( CvtQTToAstBitMask(ArgInfo[i].DeclSpec.getObjCDeclQualifier())); |