summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/readability
diff options
context:
space:
mode:
authorDaniel Marjamaki <daniel.marjamaki@evidente.se>2017-02-24 09:02:44 +0000
committerDaniel Marjamaki <daniel.marjamaki@evidente.se>2017-02-24 09:02:44 +0000
commit80c3b17410e10bab68ca3f48e86cdbc5357a9954 (patch)
tree42601467056849d976d0d38aa389c43a38625d9c /clang-tools-extra/clang-tidy/readability
parentd93add34b752b1b18a100f785e72f1f38f6479a6 (diff)
downloadbcm5719-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.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