diff options
| author | Daniel Marjamaki <daniel.marjamaki@evidente.se> | 2017-02-24 09:02:44 +0000 |
|---|---|---|
| committer | Daniel Marjamaki <daniel.marjamaki@evidente.se> | 2017-02-24 09:02:44 +0000 |
| commit | 80c3b17410e10bab68ca3f48e86cdbc5357a9954 (patch) | |
| tree | 42601467056849d976d0d38aa389c43a38625d9c /clang-tools-extra/clang-tidy/readability | |
| parent | d93add34b752b1b18a100f785e72f1f38f6479a6 (diff) | |
| download | bcm5719-llvm-80c3b17410e10bab68ca3f48e86cdbc5357a9954.tar.gz bcm5719-llvm-80c3b17410e10bab68ca3f48e86cdbc5357a9954.zip | |
[clang-tidy] Fix readability-redundant-declaration false positive
Differential Revision: https://reviews.llvm.org/D27048
llvm-svn: 296100
Diffstat (limited to 'clang-tools-extra/clang-tidy/readability')
| -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( |

