diff options
Diffstat (limited to 'clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp')
| -rw-r--r-- | clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp | 12 |
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( |

