From: Ted Kremenek Date: Wed, 12 Sep 2012 16:50:35 +0000 (+0000) Subject: Revert "objective-C: warn under a flag if missing argument" X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b648cf02f13ae74ec346f8d22933298f9977e4e0;p=clang Revert "objective-C: warn under a flag if missing argument" We plan on discussing this more, but we shouldn't have it in the compiler in an incomplete state. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163720 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/DiagnosticParseKinds.td b/include/clang/Basic/DiagnosticParseKinds.td index 5f8e8aa3ac..e4e339aefc 100644 --- a/include/clang/Basic/DiagnosticParseKinds.td +++ b/include/clang/Basic/DiagnosticParseKinds.td @@ -357,12 +357,6 @@ def err_nsnumber_nonliteral_unary : Error< def warn_cstyle_param : Warning< "use of C-style parameters in Objective-C method declarations" " is deprecated">, InGroup; -def warn_missing_argument_name : Warning< - "no parameter name in the middle of a selector" - " may result in incomplete selector name">, - InGroup>, DefaultIgnore; -def note_missing_argument_name : Note< - "did you mean %0 as the selector name">; let CategoryName = "ARC Parse Issue" in { def err_arc_bridge_retain : Error< diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp index 6d5f35a799..977d4d9734 100644 --- a/lib/Parse/ParseObjc.cpp +++ b/lib/Parse/ParseObjc.cpp @@ -1031,7 +1031,7 @@ Decl *Parser::ParseObjCMethodDecl(SourceLocation mLoc, Scope::FunctionPrototypeScope|Scope::DeclScope); AttributePool allParamAttrs(AttrFactory); - bool warnSelectorName = false; + while (1) { ParsedAttributes paramAttrs(AttrFactory); Sema::ObjCArgInfo ArgInfo; @@ -1100,16 +1100,8 @@ Decl *Parser::ParseObjCMethodDecl(SourceLocation mLoc, // Check for another keyword selector. SelIdent = ParseObjCSelectorPiece(selLoc); - if (!SelIdent) { - if (Tok.isNot(tok::colon)) - break; - // parameter name was not followed with selector name; as in: - // - (void) Meth: (id) Name:(id)Arg2; Issue a warning as user - // might have meant: - (void) Meth: (id)Arg1 Name:(id)Arg2; - Diag(Tok, diag::warn_missing_argument_name); // missing argument name. - warnSelectorName = true; - } - + if (!SelIdent && Tok.isNot(tok::colon)) + break; // We have a selector or a colon, continue parsing. } @@ -1150,9 +1142,6 @@ Decl *Parser::ParseObjCMethodDecl(SourceLocation mLoc, Selector Sel = PP.getSelectorTable().getSelector(KeyIdents.size(), &KeyIdents[0]); - if (warnSelectorName) - Diag(mLoc, diag::note_missing_argument_name) << Sel.getAsString(); - Decl *Result = Actions.ActOnMethodDeclaration(getCurScope(), mLoc, Tok.getLocation(), mType, DSRet, ReturnType, diff --git a/test/SemaObjC/warn-missing-selector-arg-name.m b/test/SemaObjC/warn-missing-selector-arg-name.m deleted file mode 100644 index 97bcd0db91..0000000000 --- a/test/SemaObjC/warn-missing-selector-arg-name.m +++ /dev/null @@ -1,22 +0,0 @@ -// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class -Wmissing-argument-name-in-selector %s -// RUN: %clang_cc1 -x objective-c++ -fsyntax-only -verify -Wno-objc-root-class -Wmissing-argument-name-in-selector %s -// rdar://12263549 - -@interface Super @end -@interface INTF : Super --(void) Name1:(id)Arg1 Name2:(id)Arg2; // Name1:Name2: --(void) Name1:(id) Name2:(id)Arg2; // expected-warning {{no parameter name in the middle of a selector may result in incomplete selector name}} \ - // expected-note {{did you mean Name1:: as the selector name}} --(void) Name1:(id)Arg1 Name2:(id)Arg2 Name3:(id)Arg3; // Name1:Name2:Name3: --(void) Name1:(id)Arg1 Name2:(id) Name3:(id)Arg3; // expected-warning {{no parameter name in the middle of a selector may result in incomplete selector name}} \ - // expected-note {{did you mean Name1:Name2:: as the selector name}} -@end - -@implementation INTF --(void) Name1:(id)Arg1 Name2:(id)Arg2{} --(void) Name1:(id) Name2:(id)Arg2 {} // expected-warning {{no parameter name in the middle of a selector may result in incomplete selector name}} \ - // expected-note {{did you mean Name1:: as the selector name}} --(void) Name1:(id)Arg1 Name2:(id)Arg2 Name3:(id)Arg3 {} --(void) Name1:(id)Arg1 Name2:(id) Name3:(id)Arg3 {} // expected-warning {{no parameter name in the middle of a selector may result in incomplete selector name}} \ - // expected-note {{did you mean Name1:Name2:: as the selector name}} -@end