[clang-tools-extra] r270193 - [find-all-symbols] make HeaderMapCollector optional in FindAllSymbols and FindAllMacros.

Eric Liu via cfe-commits cfe-commits at lists.llvm.org
Fri May 20 02:12:02 PDT 2016


Author: ioeric
Date: Fri May 20 04:12:01 2016
New Revision: 270193

URL: http://llvm.org/viewvc/llvm-project?rev=270193&view=rev
Log:
[find-all-symbols] make HeaderMapCollector optional in FindAllSymbols and FindAllMacros.

Modified:
    clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllMacros.cpp
    clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllMacros.h
    clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllSymbols.cpp
    clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllSymbols.h
    clang-tools-extra/trunk/include-fixer/find-all-symbols/HeaderMapCollector.h
    clang-tools-extra/trunk/unittests/include-fixer/find-all-symbols/FindAllSymbolsTests.cpp

Modified: clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllMacros.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllMacros.cpp?rev=270193&r1=270192&r2=270193&view=diff
==============================================================================
--- clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllMacros.cpp (original)
+++ clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllMacros.cpp Fri May 20 04:12:01 2016
@@ -27,11 +27,13 @@ void FindAllMacros::MacroDefined(const T
   if (FilePath.empty())
     return;
 
-  // Check pragma remapping header.
-  auto HeaderMappingTable = Collector->getHeaderMappingTable();
-  auto Iter = HeaderMappingTable.find(FilePath);
-  if (Iter != HeaderMappingTable.end())
-    FilePath = Iter->second;
+  // If Collector is not nullptr, check pragma remapping header.
+  if (Collector) {
+    auto HeaderMappingTable = Collector->getHeaderMappingTable();
+    auto Iter = HeaderMappingTable.find(FilePath);
+    if (Iter != HeaderMappingTable.end())
+      FilePath = Iter->second;
+  }
 
   SymbolInfo Symbol(MacroNameTok.getIdentifierInfo()->getName(),
                     SymbolInfo::SymbolKind::Macro, FilePath.str(),

Modified: clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllMacros.h
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllMacros.h?rev=270193&r1=270192&r2=270193&view=diff
==============================================================================
--- clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllMacros.h (original)
+++ clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllMacros.h Fri May 20 04:12:01 2016
@@ -25,9 +25,9 @@ class HeaderMapCollector;
 /// preprocessing period.
 class FindAllMacros : public clang::PPCallbacks {
 public:
-  explicit FindAllMacros(SymbolReporter *Reporter,
-                         HeaderMapCollector *Collector, SourceManager *SM)
-      : Reporter(Reporter), Collector(Collector), SM(SM) {}
+  explicit FindAllMacros(SymbolReporter *Reporter, SourceManager *SM,
+                         HeaderMapCollector *Collector = nullptr)
+      : Reporter(Reporter), SM(SM), Collector(Collector) {}
 
   void MacroDefined(const Token &MacroNameTok,
                     const MacroDirective *MD) override;
@@ -35,11 +35,10 @@ public:
 private:
   // Reporter for SymbolInfo.
   SymbolReporter *const Reporter;
+  SourceManager *const SM;
   // A remapping header file collector allowing clients to include a different
   // header.
   HeaderMapCollector *const Collector;
-
-  SourceManager *const SM;
 };
 
 } // namespace find_all_symbols

Modified: clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllSymbols.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllSymbols.cpp?rev=270193&r1=270192&r2=270193&view=diff
==============================================================================
--- clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllSymbols.cpp (original)
+++ clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllSymbols.cpp Fri May 20 04:12:01 2016
@@ -59,7 +59,7 @@ std::vector<SymbolInfo::Context> GetCont
 
 llvm::Optional<SymbolInfo>
 CreateSymbolInfo(const NamedDecl *ND, const SourceManager &SM,
-                 const HeaderMapCollector::HeaderMap &HeaderMappingTable) {
+                 const HeaderMapCollector *Collector) {
   SymbolInfo::SymbolKind Type;
   if (llvm::isa<VarDecl>(ND)) {
     Type = SymbolInfo::SymbolKind::Variable;
@@ -96,10 +96,12 @@ CreateSymbolInfo(const NamedDecl *ND, co
   if (FilePath.empty())
     return llvm::None;
 
-  // Check pragma remapping header.
-  auto Iter = HeaderMappingTable.find(FilePath);
-  if (Iter != HeaderMappingTable.end())
-    FilePath = Iter->second;
+  // If Collector is not nullptr, check pragma remapping header.
+  if (Collector) {
+    auto Iter = Collector->getHeaderMappingTable().find(FilePath);
+    if (Iter != Collector->getHeaderMappingTable().end())
+      FilePath = Iter->second;
+  }
 
   return SymbolInfo(ND->getNameAsString(), Type, FilePath.str(),
                     SM.getExpansionLineNumber(Loc), GetContexts(ND));
@@ -215,7 +217,7 @@ void FindAllSymbols::run(const MatchFind
   const SourceManager *SM = Result.SourceManager;
 
   llvm::Optional<SymbolInfo> Symbol =
-      CreateSymbolInfo(ND, *SM, Collector->getHeaderMappingTable());
+      CreateSymbolInfo(ND, *SM, Collector);
   if (Symbol)
     Reporter->reportSymbol(
         SM->getFileEntryForID(SM->getMainFileID())->getName(), *Symbol);

Modified: clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllSymbols.h
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllSymbols.h?rev=270193&r1=270192&r2=270193&view=diff
==============================================================================
--- clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllSymbols.h (original)
+++ clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllSymbols.h Fri May 20 04:12:01 2016
@@ -35,7 +35,7 @@ class HeaderMapCollector;
 class FindAllSymbols : public clang::ast_matchers::MatchFinder::MatchCallback {
 public:
   explicit FindAllSymbols(SymbolReporter *Reporter,
-                          HeaderMapCollector *Collector)
+                          HeaderMapCollector *Collector = nullptr)
       : Reporter(Reporter), Collector(Collector) {}
 
   void registerMatchers(clang::ast_matchers::MatchFinder *MatchFinder);

Modified: clang-tools-extra/trunk/include-fixer/find-all-symbols/HeaderMapCollector.h
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/include-fixer/find-all-symbols/HeaderMapCollector.h?rev=270193&r1=270192&r2=270193&view=diff
==============================================================================
--- clang-tools-extra/trunk/include-fixer/find-all-symbols/HeaderMapCollector.h (original)
+++ clang-tools-extra/trunk/include-fixer/find-all-symbols/HeaderMapCollector.h Fri May 20 04:12:01 2016
@@ -25,7 +25,7 @@ public:
                         llvm::StringRef MappingHeaderPath) {
     HeaderMappingTable[OrignalHeaderPath] = MappingHeaderPath;
   };
-  const HeaderMap &getHeaderMappingTable() { return HeaderMappingTable; };
+  const HeaderMap &getHeaderMappingTable() const { return HeaderMappingTable; };
 
 private:
   /// A string-to-string map saving the mapping relationship.

Modified: clang-tools-extra/trunk/unittests/include-fixer/find-all-symbols/FindAllSymbolsTests.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/unittests/include-fixer/find-all-symbols/FindAllSymbolsTests.cpp?rev=270193&r1=270192&r2=270193&view=diff
==============================================================================
--- clang-tools-extra/trunk/unittests/include-fixer/find-all-symbols/FindAllSymbolsTests.cpp (original)
+++ clang-tools-extra/trunk/unittests/include-fixer/find-all-symbols/FindAllSymbolsTests.cpp Fri May 20 04:12:01 2016
@@ -67,7 +67,7 @@ public:
                     StringRef InFile) override {
     Compiler.getPreprocessor().addCommentHandler(&Handler);
     Compiler.getPreprocessor().addPPCallbacks(llvm::make_unique<FindAllMacros>(
-        Reporter, &Collector, &Compiler.getSourceManager()));
+        Reporter, &Compiler.getSourceManager(), &Collector));
     return MatchFinder.newASTConsumer();
   }
 




More information about the cfe-commits mailing list