Author: djasper
Date: Tue Sep 22 04:20:20 2015
New Revision: 248252

URL: http://llvm.org/viewvc/llvm-project?rev=248252&view=rev
Log:
misc-unused-parameter: Ignore lambda static invokers.

Modified:
    clang-tools-extra/trunk/clang-tidy/misc/UnusedParametersCheck.cpp
    clang-tools-extra/trunk/test/clang-tidy/misc-unused-parameters.cpp

Modified: clang-tools-extra/trunk/clang-tidy/misc/UnusedParametersCheck.cpp
URL: 
http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/UnusedParametersCheck.cpp?rev=248252&r1=248251&r2=248252&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/UnusedParametersCheck.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/UnusedParametersCheck.cpp Tue Sep 
22 04:20:20 2015
@@ -101,6 +101,9 @@ void UnusedParametersCheck::check(const
   if (!Function->doesThisDeclarationHaveABody() ||
       !Function->hasWrittenPrototype())
     return;
+  if (const auto *Method = dyn_cast<CXXMethodDecl>(Function))
+    if (Method->isLambdaStaticInvoker())
+      return;
   for (unsigned i = 0, e = Function->getNumParams(); i != e; ++i) {
     const auto *Param = Function->getParamDecl(i);
     if (Param->isUsed() || Param->isReferenced() || !Param->getDeclName() ||

Modified: clang-tools-extra/trunk/test/clang-tidy/misc-unused-parameters.cpp
URL: 
http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-unused-parameters.cpp?rev=248252&r1=248251&r2=248252&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-unused-parameters.cpp 
(original)
+++ clang-tools-extra/trunk/test/clang-tidy/misc-unused-parameters.cpp Tue Sep 
22 04:20:20 2015
@@ -1,6 +1,6 @@
 // RUN: echo "static void staticFunctionHeader(int i) {}" > %T/header.h
 // RUN: echo "static void staticFunctionHeader(int  /*i*/) {}" > 
%T/header-fixed.h
-// RUN: %python %S/check_clang_tidy.py %s misc-unused-parameters %t 
-header-filter='.*' -- -fno-delayed-template-parsing
+// RUN: %python %S/check_clang_tidy.py %s misc-unused-parameters %t 
-header-filter='.*' -- -std=c++11 -fno-delayed-template-parsing
 // RUN: diff %T/header.h %T/header-fixed.h
 
 #include "header.h"
@@ -25,6 +25,9 @@ void c(int *i) {}
 void g(int i);             // Don't remove stuff in declarations
 void h(int i) { (void)i; } // Don't remove used parameters
 
+bool useLambda(int (*fn)(int));
+static bool static_var = useLambda([] (int a) { return a; });
+
 // Remove parameters of local functions
 // ====================================
 static void staticFunctionA(int i);


_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to