Author: ahatanak Date: Fri May 3 00:19:46 2019 New Revision: 359864 URL: http://llvm.org/viewvc/llvm-project?rev=359864&view=rev Log: [Sema][ObjC] Disable -Wunused-parameter for ObjC methods
The warning isn't very useful when the function is an ObjC method. rdar://problem/41561853 Differential Revision: https://reviews.llvm.org/D61147 Modified: cfe/trunk/lib/Sema/SemaDecl.cpp cfe/trunk/test/SemaObjC/method-unused-attribute.m cfe/trunk/test/SemaObjC/unused.m Modified: cfe/trunk/lib/Sema/SemaDecl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=359864&r1=359863&r2=359864&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaDecl.cpp (original) +++ cfe/trunk/lib/Sema/SemaDecl.cpp Fri May 3 00:19:46 2019 @@ -13353,8 +13353,6 @@ Decl *Sema::ActOnFinishFunctionBody(Decl assert(MD == getCurMethodDecl() && "Method parsing confused"); MD->setBody(Body); if (!MD->isInvalidDecl()) { - if (!MD->hasSkippedBody()) - DiagnoseUnusedParameters(MD->parameters()); DiagnoseSizeOfParametersAndReturnValue(MD->parameters(), MD->getReturnType(), MD); Modified: cfe/trunk/test/SemaObjC/method-unused-attribute.m URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/method-unused-attribute.m?rev=359864&r1=359863&r2=359864&view=diff ============================================================================== --- cfe/trunk/test/SemaObjC/method-unused-attribute.m (original) +++ cfe/trunk/test/SemaObjC/method-unused-attribute.m Fri May 3 00:19:46 2019 @@ -1,5 +1,9 @@ // RUN: %clang_cc1 -fsyntax-only -Wunused-parameter -verify -Wno-objc-root-class %s +// -Wunused-parameter ignores ObjC method parameters that are unused. + +// expected-no-diagnostics + @interface INTF - (void) correct_use_of_unused: (void *) notice : (id)another_arg; - (void) will_warn_unused_arg: (void *) notice : (id)warn_unused; @@ -9,7 +13,7 @@ @implementation INTF - (void) correct_use_of_unused: (void *) __attribute__((unused)) notice : (id) __attribute__((unused)) newarg{ } -- (void) will_warn_unused_arg: (void *) __attribute__((unused)) notice : (id)warn_unused {} // expected-warning {{unused parameter 'warn_unused'}} -- (void) unused_attr_on_decl_ignored: (void *) will_warn{} // expected-warning {{unused parameter 'will_warn'}} +- (void) will_warn_unused_arg: (void *) __attribute__((unused)) notice : (id)warn_unused {} +- (void) unused_attr_on_decl_ignored: (void *) will_warn{} @end Modified: cfe/trunk/test/SemaObjC/unused.m URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/unused.m?rev=359864&r1=359863&r2=359864&view=diff ============================================================================== --- cfe/trunk/test/SemaObjC/unused.m (original) +++ cfe/trunk/test/SemaObjC/unused.m Fri May 3 00:19:46 2019 @@ -33,7 +33,7 @@ void test2() { // expected-note {{introduce a parameter name to make 'x' part of the selector}} \ // expected-note {{or insert whitespace before ':' to use 'x' as parameter name and have an empty entry in the selector}} -(int)y: // expected-warning {{unused}} expected-warning {{'y' used as the name of the previous parameter rather than as part of the selector}} \ +(int)y: // expected-warning {{'y' used as the name of the previous parameter rather than as part of the selector}} \ // expected-note {{introduce a parameter name to make 'y' part of the selector}} \ // expected-note {{or insert whitespace before ':' to use 'y' as parameter name and have an empty entry in the selector}} (int) __attribute__((unused))z { return x; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits