[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