summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp b/clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp
index 672cda655fb..1ee65d8d7e7 100644
--- a/clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp
@@ -19,7 +19,10 @@ namespace tidy {
namespace readability {
void RedundantDeclarationCheck::registerMatchers(MatchFinder *Finder) {
- Finder->addMatcher(namedDecl(anyOf(varDecl(), functionDecl())).bind("Decl"),
+ auto UnlessDefinition = unless(isDefinition());
+ Finder->addMatcher(namedDecl(anyOf(varDecl(UnlessDefinition),
+ functionDecl(UnlessDefinition)))
+ .bind("Decl"),
this);
}
@@ -41,9 +44,6 @@ void RedundantDeclarationCheck::check(const MatchFinder::MatchResult &Result) {
bool MultiVar = false;
if (const auto *VD = dyn_cast<VarDecl>(D)) {
- if (VD->getPreviousDecl()->getStorageClass() == SC_Extern &&
- VD->getStorageClass() != SC_Extern)
- return;
// Is this a multivariable declaration?
for (const auto Other : VD->getDeclContext()->decls()) {
if (Other != D && Other->getLocStart() == VD->getLocStart()) {
@@ -51,10 +51,6 @@ void RedundantDeclarationCheck::check(const MatchFinder::MatchResult &Result) {
break;
}
}
- } else {
- const auto *FD = cast<FunctionDecl>(D);
- if (FD->isThisDeclarationADefinition())
- return;
}
SourceLocation EndLoc = Lexer::getLocForEndOfToken(
OpenPOWER on IntegriCloud