summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclObjC.cpp
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2011-04-23 02:46:06 +0000
committerJohn McCall <rjmccall@apple.com>2011-04-23 02:46:06 +0000
commitd44f4d741c143e1e0cc0045c1dd95c7661398f42 (patch)
tree7621eeb975dcfaf66bc7cff4b41b46eb9600e73d /clang/lib/Sema/SemaDeclObjC.cpp
parent7e14f91dbd0c651e2add6384da4e88f510919822 (diff)
downloadbcm5719-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.cpp14
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()));
OpenPOWER on IntegriCloud