[tidy] Move private ast matchers into anonymous namespaces to avoid ODR conflicts.

No functionality change intended.

llvm-svn: 325467
diff --git a/clang-tools-extra/clang-tidy/boost/UseToStringCheck.cpp b/clang-tools-extra/clang-tidy/boost/UseToStringCheck.cpp
index 8ca3656..1775440 100644
--- a/clang-tools-extra/clang-tidy/boost/UseToStringCheck.cpp
+++ b/clang-tools-extra/clang-tidy/boost/UseToStringCheck.cpp
@@ -15,10 +15,12 @@
 namespace tidy {
 namespace boost {
 
+namespace {
 AST_MATCHER(Type, isStrictlyInteger) {
   return Node.isIntegerType() && !Node.isAnyCharacterType() &&
          !Node.isBooleanType();
 }
+} // namespace
 
 void UseToStringCheck::registerMatchers(MatchFinder *Finder) {
   if (!getLangOpts().CPlusPlus)
diff --git a/clang-tools-extra/clang-tidy/bugprone/StringConstructorCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/StringConstructorCheck.cpp
index 5607ce6..420428f 100644
--- a/clang-tools-extra/clang-tidy/bugprone/StringConstructorCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/StringConstructorCheck.cpp
@@ -18,9 +18,11 @@
 namespace tidy {
 namespace bugprone {
 
+namespace {
 AST_MATCHER_P(IntegerLiteral, isBiggerThan, unsigned, N) {
   return Node.getValue().getZExtValue() > N;
 }
+} // namespace
 
 StringConstructorCheck::StringConstructorCheck(StringRef Name,
                                                ClangTidyContext *Context)
diff --git a/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp
index 6b3f498..bb9c9b6 100644
--- a/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp
@@ -19,11 +19,13 @@
 namespace tidy {
 namespace bugprone {
 
+namespace {
 AST_MATCHER(CXXMethodDecl, isStatic) { return Node.isStatic(); }
 
 AST_MATCHER(CXXMethodDecl, isOverloadedOperator) {
   return Node.isOverloadedOperator();
 }
+} // namespace
 
 /// Finds out if the given method overrides some method.
 static bool isOverrideMethod(const CXXMethodDecl *MD) {
diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidGotoCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidGotoCheck.cpp
index 923555b..3e800cd 100644
--- a/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidGotoCheck.cpp
+++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidGotoCheck.cpp
@@ -17,9 +17,11 @@
 namespace tidy {
 namespace cppcoreguidelines {
 
+namespace {
 AST_MATCHER(GotoStmt, isForwardJumping) {
   return Node.getLocStart() < Node.getLabel()->getLocStart();
 }
+} // namespace
 
 void AvoidGotoCheck::registerMatchers(MatchFinder *Finder) {
   if (!getLangOpts().CPlusPlus)
diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsArrayToPointerDecayCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsArrayToPointerDecayCheck.cpp
index bfcef89..8b0f7ce 100644
--- a/clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsArrayToPointerDecayCheck.cpp
+++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsArrayToPointerDecayCheck.cpp
@@ -17,6 +17,7 @@
 namespace tidy {
 namespace cppcoreguidelines {
 
+namespace {
 AST_MATCHER_P(CXXForRangeStmt, hasRangeBeginEndStmt,
               ast_matchers::internal::Matcher<DeclStmt>, InnerMatcher) {
   for (const DeclStmt *Stmt : {Node.getBeginStmt(), Node.getEndStmt()})
@@ -46,6 +47,7 @@
 
   return InnerMatcher.matches(*E, Finder, Builder);
 }
+} // namespace
 
 void ProBoundsArrayToPointerDecayCheck::registerMatchers(MatchFinder *Finder) {
   if (!getLangOpts().CPlusPlus)
diff --git a/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp b/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
index 4893b21..d4624d0 100644
--- a/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
+++ b/clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
@@ -17,12 +17,14 @@
 namespace clang {
 namespace tidy {
 namespace fuchsia {
-  
+
+namespace {
 AST_MATCHER(CXXRecordDecl, hasBases) {
   if (Node.hasDefinition())
     return Node.getNumBases() > 0;
   return false;
 }
+} // namespace
 
 // Adds a node (by name) to the interface map, if it was not present in the map
 // previously.
diff --git a/clang-tools-extra/clang-tidy/fuchsia/OverloadedOperatorCheck.cpp b/clang-tools-extra/clang-tidy/fuchsia/OverloadedOperatorCheck.cpp
index bf0a506..847f763 100644
--- a/clang-tools-extra/clang-tidy/fuchsia/OverloadedOperatorCheck.cpp
+++ b/clang-tools-extra/clang-tidy/fuchsia/OverloadedOperatorCheck.cpp
@@ -15,6 +15,7 @@
 namespace tidy {
 namespace fuchsia {
 
+namespace {
 AST_MATCHER(FunctionDecl, isFuchsiaOverloadedOperator) {
   if (const auto *CXXMethodNode = dyn_cast<CXXMethodDecl>(&Node)) {
     if (CXXMethodNode->isCopyAssignmentOperator() ||
@@ -23,6 +24,7 @@
   }
   return Node.isOverloadedOperator();
 }
+} // namespace
 
 void OverloadedOperatorCheck::registerMatchers(MatchFinder *Finder) {
   Finder->addMatcher(functionDecl(isFuchsiaOverloadedOperator()).bind("decl"),
diff --git a/clang-tools-extra/clang-tidy/fuchsia/StaticallyConstructedObjectsCheck.cpp b/clang-tools-extra/clang-tidy/fuchsia/StaticallyConstructedObjectsCheck.cpp
index 8291f98..16a534b 100644
--- a/clang-tools-extra/clang-tidy/fuchsia/StaticallyConstructedObjectsCheck.cpp
+++ b/clang-tools-extra/clang-tidy/fuchsia/StaticallyConstructedObjectsCheck.cpp
@@ -14,7 +14,8 @@
 namespace clang {
 namespace tidy {
 namespace fuchsia {
-  
+
+namespace {
 AST_MATCHER(Expr, isConstantInitializer) {
   return Node.isConstantInitializer(Finder->getASTContext(), false);
 }
@@ -22,7 +23,8 @@
 AST_MATCHER(VarDecl, isGlobalStatic) {
   return Node.getStorageDuration() == SD_Static && !Node.isLocalVarDecl();
 }
-  
+} // namespace
+
 void StaticallyConstructedObjectsCheck::registerMatchers(MatchFinder *Finder) {
   // Constructing global, non-trivial objects with static storage is
   // disallowed, unless the object is statically initialized with a constexpr 
diff --git a/clang-tools-extra/clang-tidy/fuchsia/TrailingReturnCheck.cpp b/clang-tools-extra/clang-tidy/fuchsia/TrailingReturnCheck.cpp
index 27989d9..8494da8 100644
--- a/clang-tools-extra/clang-tidy/fuchsia/TrailingReturnCheck.cpp
+++ b/clang-tools-extra/clang-tidy/fuchsia/TrailingReturnCheck.cpp
@@ -15,18 +15,16 @@
 using namespace clang::ast_matchers;
 
 namespace clang {
-namespace ast_matchers {
-
-const internal::VariadicDynCastAllOfMatcher<Type, DecltypeType> decltypeType;
-
-} // namespace ast_matchers
-
 namespace tidy {
 namespace fuchsia {
 
+namespace {
+const internal::VariadicDynCastAllOfMatcher<Type, DecltypeType> decltypeType;
+
 AST_MATCHER(FunctionDecl, hasTrailingReturn) {
   return Node.getType()->castAs<FunctionProtoType>()->hasTrailingReturn();
 }
+} // namespace
 
 void TrailingReturnCheck::registerMatchers(MatchFinder *Finder) {
 
diff --git a/clang-tools-extra/clang-tidy/fuchsia/VirtualInheritanceCheck.cpp b/clang-tools-extra/clang-tidy/fuchsia/VirtualInheritanceCheck.cpp
index 6f3b433..f3da2b6 100644
--- a/clang-tools-extra/clang-tidy/fuchsia/VirtualInheritanceCheck.cpp
+++ b/clang-tools-extra/clang-tidy/fuchsia/VirtualInheritanceCheck.cpp
@@ -17,6 +17,7 @@
 namespace tidy {
 namespace fuchsia {
 
+namespace {
 AST_MATCHER(CXXRecordDecl, hasDirectVirtualBaseClass) {
   if (!Node.hasDefinition()) return false;
   if (!Node.getNumVBases()) return false;
@@ -24,6 +25,7 @@
     if (Base.isVirtual()) return true;
   return false;
 }
+} // namespace
 
 void VirtualInheritanceCheck::registerMatchers(MatchFinder *Finder) {
   // Defining classes using direct virtual inheritance is disallowed.
diff --git a/clang-tools-extra/clang-tidy/hicpp/NoAssemblerCheck.cpp b/clang-tools-extra/clang-tidy/hicpp/NoAssemblerCheck.cpp
index 053db61..06969a8 100644
--- a/clang-tools-extra/clang-tidy/hicpp/NoAssemblerCheck.cpp
+++ b/clang-tools-extra/clang-tidy/hicpp/NoAssemblerCheck.cpp
@@ -14,17 +14,16 @@
 using namespace clang::ast_matchers;
 
 namespace clang {
-namespace ast_matchers {
-AST_MATCHER(VarDecl, isAsm) { return Node.hasAttr<clang::AsmLabelAttr>(); }
-const internal::VariadicDynCastAllOfMatcher<Decl, FileScopeAsmDecl>
-    fileScopeAsmDecl;
-}
-}
-
-namespace clang {
 namespace tidy {
 namespace hicpp {
 
+namespace {
+AST_MATCHER(VarDecl, isAsm) { return Node.hasAttr<clang::AsmLabelAttr>(); }
+const ast_matchers::internal::VariadicDynCastAllOfMatcher<Decl,
+                                                          FileScopeAsmDecl>
+    fileScopeAsmDecl;
+} // namespace
+
 void NoAssemblerCheck::registerMatchers(MatchFinder *Finder) {
   Finder->addMatcher(asmStmt().bind("asm-stmt"), this);
   Finder->addMatcher(fileScopeAsmDecl().bind("asm-file-scope"), this);
diff --git a/clang-tools-extra/clang-tidy/misc/StringLiteralWithEmbeddedNulCheck.cpp b/clang-tools-extra/clang-tidy/misc/StringLiteralWithEmbeddedNulCheck.cpp
index 335927b..7567f6f 100644
--- a/clang-tools-extra/clang-tidy/misc/StringLiteralWithEmbeddedNulCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/StringLiteralWithEmbeddedNulCheck.cpp
@@ -17,12 +17,14 @@
 namespace tidy {
 namespace misc {
 
+namespace {
 AST_MATCHER(StringLiteral, containsNul) {
   for (size_t i = 0; i < Node.getLength(); ++i)
     if (Node.getCodeUnit(i) == '\0')
       return true;
   return false;
 }
+} // namespace
 
 void StringLiteralWithEmbeddedNulCheck::registerMatchers(MatchFinder *Finder) {
   // Match a string that contains embedded NUL character. Extra-checks are
diff --git a/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp b/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp
index 3aab169..1ab73d5 100644
--- a/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp
@@ -23,6 +23,7 @@
 namespace tidy {
 namespace modernize {
 
+namespace {
 /// \brief Matches move-constructible classes.
 ///
 /// Given
@@ -44,6 +45,7 @@
   }
   return false;
 }
+} // namespace
 
 static TypeMatcher constRefType() {
   return lValueReferenceType(pointee(isConstQualified()));
diff --git a/clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp b/clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp
index c4b371f..04ecf21 100644
--- a/clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp
@@ -21,6 +21,7 @@
 namespace tidy {
 namespace modernize {
 
+namespace {
 static const char AutoPtrTokenId[] = "AutoPrTokenId";
 static const char AutoPtrOwnershipTransferId[] = "AutoPtrOwnershipTransferId";
 
@@ -69,6 +70,8 @@
   return (Info && Info->isStr("std"));
 }
 
+} // namespace
+
 ReplaceAutoPtrCheck::ReplaceAutoPtrCheck(StringRef Name,
                                          ClangTidyContext *Context)
     : ClangTidyCheck(Name, Context),