diff options
| author | Alexander Kornienko <alexfh@google.com> | 2015-06-17 13:11:37 +0000 |
|---|---|---|
| committer | Alexander Kornienko <alexfh@google.com> | 2015-06-17 13:11:37 +0000 |
| commit | 50d7f4617f250a8f0dac565d273d162de36841f5 (patch) | |
| tree | 1e4e9387f83650de7d144bcc43c2e3fbeb549195 /clang-tools-extra/clang-tidy | |
| parent | e6fcf7d372ca822b06112d92856895c2fce38878 (diff) | |
| download | bcm5719-llvm-50d7f4617f250a8f0dac565d273d162de36841f5.tar.gz bcm5719-llvm-50d7f4617f250a8f0dac565d273d162de36841f5.zip | |
[clang-tidy] Move user-defined matches to unnamed namespaces to prevent ODR violations.
llvm-svn: 239904
Diffstat (limited to 'clang-tools-extra/clang-tidy')
8 files changed, 25 insertions, 29 deletions
diff --git a/clang-tools-extra/clang-tidy/google/ExplicitMakePairCheck.cpp b/clang-tools-extra/clang-tidy/google/ExplicitMakePairCheck.cpp index c7034828eaf..f69590650bb 100644 --- a/clang-tools-extra/clang-tidy/google/ExplicitMakePairCheck.cpp +++ b/clang-tools-extra/clang-tidy/google/ExplicitMakePairCheck.cpp @@ -15,12 +15,11 @@ using namespace clang::ast_matchers; namespace clang { - -namespace ast_matchers { +namespace { AST_MATCHER(DeclRefExpr, hasExplicitTemplateArgs) { return Node.hasExplicitTemplateArgs(); } -} // namespace ast_matchers +} // namespace namespace tidy { namespace google { diff --git a/clang-tools-extra/clang-tidy/google/UnnamedNamespaceInHeaderCheck.cpp b/clang-tools-extra/clang-tidy/google/UnnamedNamespaceInHeaderCheck.cpp index 6b48a800ab2..c98b66f04d7 100644 --- a/clang-tools-extra/clang-tidy/google/UnnamedNamespaceInHeaderCheck.cpp +++ b/clang-tools-extra/clang-tidy/google/UnnamedNamespaceInHeaderCheck.cpp @@ -15,11 +15,11 @@ using namespace clang::ast_matchers; namespace clang { -namespace ast_matchers { +namespace { AST_MATCHER(NamespaceDecl, isAnonymousNamespace) { return Node.isAnonymousNamespace(); } -} // namespace ast_matchers +} // namespace namespace tidy { namespace google { diff --git a/clang-tools-extra/clang-tidy/misc/AssertSideEffectCheck.cpp b/clang-tools-extra/clang-tidy/misc/AssertSideEffectCheck.cpp index fa589a4c759..6ccfb6ad52b 100644 --- a/clang-tools-extra/clang-tidy/misc/AssertSideEffectCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/AssertSideEffectCheck.cpp @@ -21,7 +21,7 @@ using namespace clang::ast_matchers; namespace clang { -namespace ast_matchers { +namespace { AST_MATCHER_P(Expr, hasSideEffect, bool, CheckFunctionCalls) { const Expr *E = &Node; @@ -68,7 +68,7 @@ AST_MATCHER_P(Expr, hasSideEffect, bool, CheckFunctionCalls) { return isa<CXXNewExpr>(E) || isa<CXXDeleteExpr>(E) || isa<CXXThrowExpr>(E); } -} // namespace ast_matchers +} // namespace namespace tidy { diff --git a/clang-tools-extra/clang-tidy/misc/BoolPointerImplicitConversionCheck.cpp b/clang-tools-extra/clang-tidy/misc/BoolPointerImplicitConversionCheck.cpp index 01313c1a78a..95f1a689f0c 100644 --- a/clang-tools-extra/clang-tidy/misc/BoolPointerImplicitConversionCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/BoolPointerImplicitConversionCheck.cpp @@ -12,14 +12,14 @@ using namespace clang::ast_matchers; namespace clang { -namespace ast_matchers { +namespace { AST_MATCHER(CastExpr, isPointerToBoolean) { return Node.getCastKind() == CK_PointerToBoolean; } AST_MATCHER(QualType, isBoolean) { return Node->isBooleanType(); } -} // namespace ast_matchers +} // namespace namespace tidy { namespace misc { diff --git a/clang-tools-extra/clang-tidy/misc/UndelegatedConstructor.cpp b/clang-tools-extra/clang-tidy/misc/UndelegatedConstructor.cpp index 3fabbe69bb3..0390c235711 100644 --- a/clang-tools-extra/clang-tidy/misc/UndelegatedConstructor.cpp +++ b/clang-tools-extra/clang-tidy/misc/UndelegatedConstructor.cpp @@ -15,9 +15,9 @@ using namespace clang::ast_matchers; namespace clang { -namespace ast_matchers { -AST_MATCHER_P(Stmt, ignoringTemporaryExpr, internal::Matcher<Stmt>, - InnerMatcher) { +namespace { +AST_MATCHER_P(Stmt, ignoringTemporaryExpr, + ast_matchers::internal::Matcher<Stmt>, InnerMatcher) { const Stmt *E = &Node; for (;;) { // Temporaries with non-trivial dtors. @@ -38,12 +38,13 @@ AST_MATCHER_P(Stmt, ignoringTemporaryExpr, internal::Matcher<Stmt>, // Finds a node if it's a base of an already bound node. AST_MATCHER_P(CXXRecordDecl, baseOfBoundNode, std::string, ID) { - return Builder->removeBindings([&](const internal::BoundNodesMap &Nodes) { - const auto *Derived = Nodes.getNodeAs<CXXRecordDecl>(ID); - return Derived != &Node && !Derived->isDerivedFrom(&Node); - }); + return Builder->removeBindings( + [&](const ast_matchers::internal::BoundNodesMap &Nodes) { + const auto *Derived = Nodes.getNodeAs<CXXRecordDecl>(ID); + return Derived != &Node && !Derived->isDerivedFrom(&Node); + }); } -} // namespace ast_matchers +} // namespace namespace tidy { namespace misc { diff --git a/clang-tools-extra/clang-tidy/misc/UnusedRAIICheck.cpp b/clang-tools-extra/clang-tidy/misc/UnusedRAIICheck.cpp index 620fc514cfc..4ca89a33c39 100644 --- a/clang-tools-extra/clang-tidy/misc/UnusedRAIICheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/UnusedRAIICheck.cpp @@ -14,12 +14,12 @@ using namespace clang::ast_matchers; namespace clang { -namespace ast_matchers { +namespace { AST_MATCHER(CXXRecordDecl, hasNonTrivialDestructor) { // TODO: If the dtor is there but empty we don't want to warn either. return Node.hasDefinition() && Node.hasNonTrivialDestructor(); } -} // namespace ast_matchers +} // namespace namespace tidy { namespace misc { diff --git a/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp b/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp index 2734b25c282..4a1f7e5ab1a 100644 --- a/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp @@ -38,16 +38,14 @@ static bool isContainer(llvm::StringRef ClassName) { } namespace clang { -namespace ast_matchers { +namespace { AST_MATCHER(QualType, isBoolType) { return Node->isBooleanType(); } AST_MATCHER(NamedDecl, stlContainer) { return isContainer(Node.getQualifiedNameAsString()); } -} // namespace ast_matchers -} // namespace clang +} // namespace -namespace clang { namespace tidy { namespace readability { diff --git a/clang-tools-extra/clang-tidy/readability/ShrinkToFitCheck.cpp b/clang-tools-extra/clang-tidy/readability/ShrinkToFitCheck.cpp index 9c159ff1785..bbaec7a8862 100644 --- a/clang-tools-extra/clang-tidy/readability/ShrinkToFitCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/ShrinkToFitCheck.cpp @@ -15,7 +15,9 @@ using namespace clang::ast_matchers; -static bool isShrinkableContainer(llvm::StringRef ClassName) { +namespace clang { +namespace { +bool isShrinkableContainer(llvm::StringRef ClassName) { static const char *Shrinkables[] = { "std::basic_string", "std::deque", @@ -25,15 +27,11 @@ static bool isShrinkableContainer(llvm::StringRef ClassName) { ClassName); } -namespace clang { -namespace ast_matchers { AST_MATCHER(NamedDecl, stlShrinkableContainer) { return isShrinkableContainer(Node.getQualifiedNameAsString()); } -} // namespace ast_matchers -} // namespace clang +} // namespace -namespace clang { namespace tidy { namespace readability { |

