From 542482e63dc068fbcf912d95c07a6e6dc1270690 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Tue, 28 Jul 2015 13:19:12 +0000 Subject: [PATCH] misc-unused-parameters: Only remove parameters in the main source file. In headers, they might always be pulled in to different TUs, even if they are declared static or nested in an unnamed namespace. llvm-svn: 243414 --- .../clang-tidy/misc/UnusedParametersCheck.cpp | 4 +++- .../test/clang-tidy/misc-unused-parameters.cpp | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp b/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp index 18e39609f0ed..f7770cc8e405 100644 --- a/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp @@ -70,7 +70,9 @@ void UnusedParametersCheck::warnOnUnusedParameter( }; // Comment out parameter name for non-local functions. - if (Function->isExternallyVisible() || UsedByRef()) { + if (Function->isExternallyVisible() || + !Result.SourceManager->isInMainFile(Function->getLocation()) || + UsedByRef()) { SourceRange RemovalRange(Param->getLocation(), Param->getLocEnd()); // Note: We always add a space before the '/*' to not accidentally create a // '*/*' for pointer types, which doesn't start a comment. clang-format will diff --git a/clang-tools-extra/test/clang-tidy/misc-unused-parameters.cpp b/clang-tools-extra/test/clang-tidy/misc-unused-parameters.cpp index 7d3c37d64452..262dfc1101b7 100644 --- a/clang-tools-extra/test/clang-tidy/misc-unused-parameters.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-unused-parameters.cpp @@ -1,6 +1,12 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-unused-parameters %t +// RUN: echo "static void staticFunctionHeader(int i) {}" > %T/header.h +// RUN: echo "static void staticFunctionHeader(int /*i*/) {}" > %T/header-fixed.h +// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-unused-parameters %t -header-filter='.*' -- +// RUN: diff %T/header.h %T/header-fixed.h // REQUIRES: shell +#include "header.h" +// CHECK-MESSAGES: header.h:1:38: warning + // Basic removal // ============= void a(int i) {}