diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2010-08-17 21:43:11 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2010-08-17 21:43:11 +0000 |
commit | cad715fb9bfd50370fa22ca62634048dcc85598b (patch) | |
tree | 6b856dbeef842c9b3218fd51dafae33bd938d0f7 | |
parent | 798f83239caa0573b46b60a0527580e2941875f2 (diff) | |
download | bcm5719-llvm-cad715fb9bfd50370fa22ca62634048dcc85598b.tar.gz bcm5719-llvm-cad715fb9bfd50370fa22ca62634048dcc85598b.zip |
Introduce -Wunused-method option for warning on unused class methods in anonymous namespace.
This option is not part of the Unused diagnostic group until the warnings on llvm codebase are fixed
and we are ready to turn it on. Suggestion by Daniel.
llvm-svn: 111298
-rw-r--r-- | clang/include/clang/Basic/DiagnosticGroups.td | 3 | ||||
-rw-r--r-- | clang/include/clang/Basic/DiagnosticSemaKinds.td | 2 | ||||
-rw-r--r-- | clang/lib/Sema/Sema.cpp | 4 | ||||
-rw-r--r-- | clang/test/SemaCXX/warn-unused-filescoped.cpp | 2 |
4 files changed, 9 insertions, 2 deletions
diff --git a/clang/include/clang/Basic/DiagnosticGroups.td b/clang/include/clang/Basic/DiagnosticGroups.td index f0ad0ab4371..61928f03c84 100644 --- a/clang/include/clang/Basic/DiagnosticGroups.td +++ b/clang/include/clang/Basic/DiagnosticGroups.td @@ -133,6 +133,7 @@ def UnknownAttributes : DiagGroup<"unknown-attributes">; def UnusedArgument : DiagGroup<"unused-argument">; def UnusedExceptionParameter : DiagGroup<"unused-exception-parameter">; def UnusedFunction : DiagGroup<"unused-function">; +def UnusedMethod : DiagGroup<"unused-method">; def UnusedLabel : DiagGroup<"unused-label">; def UnusedParameter : DiagGroup<"unused-parameter">; def UnusedValue : DiagGroup<"unused-value">; @@ -167,6 +168,7 @@ def Conversion : DiagGroup<"conversion", def Unused : DiagGroup<"unused", [UnusedArgument, UnusedFunction, UnusedLabel, // UnusedParameter, (matches GCC's behavior) + // UnusedMethod, (clean-up llvm before enabling) UnusedValue, UnusedVariable]>, DiagCategory<"Unused Entity Issue">; @@ -185,6 +187,7 @@ def Extra : DiagGroup<"extra", [ InitializerOverrides, SemiBeforeMethodBody, SignCompare, + UnusedMethod, UnusedParameter ]>; diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index 91e0525f019..6f525ca16c1 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -104,6 +104,8 @@ def warn_decl_in_param_list : Warning< "declaration of %0 will not be visible outside of this function">; def warn_unused_function : Warning<"unused function %0">, InGroup<UnusedFunction>, DefaultIgnore; +def warn_unused_method : Warning<"unused method %0">, + InGroup<UnusedMethod>, DefaultIgnore; def warn_implicit_function_decl : Warning< "implicit declaration of function %0">, diff --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp index 0a85252ab10..92e3fdd72ad 100644 --- a/clang/lib/Sema/Sema.cpp +++ b/clang/lib/Sema/Sema.cpp @@ -376,7 +376,9 @@ void Sema::ActOnEndOfTranslationUnit() { const FunctionDecl *DiagD; if (!FD->hasBody(DiagD)) DiagD = FD; - Diag(DiagD->getLocation(), diag::warn_unused_function) + Diag(DiagD->getLocation(), + isa<CXXMethodDecl>(DiagD) ? diag::warn_unused_method + : diag::warn_unused_function) << DiagD->getDeclName(); } else { const VarDecl *DiagD = cast<VarDecl>(*I)->getDefinition(); diff --git a/clang/test/SemaCXX/warn-unused-filescoped.cpp b/clang/test/SemaCXX/warn-unused-filescoped.cpp index 50d41422d35..37acecb0f3f 100644 --- a/clang/test/SemaCXX/warn-unused-filescoped.cpp +++ b/clang/test/SemaCXX/warn-unused-filescoped.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fsyntax-only -verify -Wunused %s +// RUN: %clang_cc1 -fsyntax-only -verify -Wunused -Wunused-method %s static void f1(); // expected-warning{{unused}} |