summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2015-08-10 15:45:46 +0000
committerDaniel Jasper <djasper@google.com>2015-08-10 15:45:46 +0000
commitb3a74c659b8946917a7b658abb1ae8b0d00ba70f (patch)
treecffa7bff9264b51a07f06c50a08635e84c12dec7
parent57add8ddfb91bead2b2e4b0a1263d39ba4ad08d0 (diff)
downloadbcm5719-llvm-b3a74c659b8946917a7b658abb1ae8b0d00ba70f.tar.gz
bcm5719-llvm-b3a74c659b8946917a7b658abb1ae8b0d00ba70f.zip
misc-unused-parameters: Don't touch K&R style functions.
We couldn't calculate the removal ranges properly at this point. llvm-svn: 244454
-rw-r--r--clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-unused-parameters.c13
2 files changed, 15 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp b/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp
index f7770cc8e40..326fb0595e0 100644
--- a/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp
@@ -97,7 +97,8 @@ void UnusedParametersCheck::warnOnUnusedParameter(
void UnusedParametersCheck::check(const MatchFinder::MatchResult &Result) {
const auto *Function = Result.Nodes.getNodeAs<FunctionDecl>("function");
- if (!Function->doesThisDeclarationHaveABody())
+ if (!Function->doesThisDeclarationHaveABody() ||
+ !Function->hasWrittenPrototype())
return;
for (unsigned i = 0, e = Function->getNumParams(); i != e; ++i) {
const auto *Param = Function->getParamDecl(i);
diff --git a/clang-tools-extra/test/clang-tidy/misc-unused-parameters.c b/clang-tools-extra/test/clang-tidy/misc-unused-parameters.c
new file mode 100644
index 00000000000..7c1ab34b7b5
--- /dev/null
+++ b/clang-tools-extra/test/clang-tidy/misc-unused-parameters.c
@@ -0,0 +1,13 @@
+// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-unused-parameters %t -- -xc
+// REQUIRES: shell
+
+// Basic removal
+// =============
+void a(int i) {}
+// CHECK-MESSAGES: :[[@LINE-1]]:12: warning: parameter 'i' is unused [misc-unused-parameters]
+// CHECK-FIXES: {{^}}void a(int /*i*/) {}{{$}}
+
+// Unchanged cases
+// ===============
+void h(i, c, d) int i; char *c, *d; {} // Don't mess with K&R style
+
OpenPOWER on IntegriCloud