summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ExternalASTMerger.cpp
diff options
context:
space:
mode:
authorRaphael Isemann <teemperor@gmail.com>2019-09-30 08:52:16 +0000
committerRaphael Isemann <teemperor@gmail.com>2019-09-30 08:52:16 +0000
commite7714fe7bff811785eeac2b7627ca4293565aa65 (patch)
tree336243a341600eebbaf887f6084afbbd16764163 /clang/lib/AST/ExternalASTMerger.cpp
parente3b4f0ec2566133df9fcb952c441cc43ceb5864d (diff)
downloadbcm5719-llvm-e7714fe7bff811785eeac2b7627ca4293565aa65.tar.gz
bcm5719-llvm-e7714fe7bff811785eeac2b7627ca4293565aa65.zip
[lldb][clang][modern-type-lookup] Use ASTImporterSharedState in ExternalASTMerger
Summary: The ExternalASTMerger should use the ASTImporterSharedState. This allows it to handle std::pair in LLDB (but the rest of libc++ is still work in progress). Reviewers: martong, shafik, a.sidorin Subscribers: rnkovacs, christof, JDevlieghere, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D68140 llvm-svn: 373193
Diffstat (limited to 'clang/lib/AST/ExternalASTMerger.cpp')
-rw-r--r--clang/lib/AST/ExternalASTMerger.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/clang/lib/AST/ExternalASTMerger.cpp b/clang/lib/AST/ExternalASTMerger.cpp
index 4dc89f0f31a..ea99e9bb934 100644
--- a/clang/lib/AST/ExternalASTMerger.cpp
+++ b/clang/lib/AST/ExternalASTMerger.cpp
@@ -107,11 +107,13 @@ public:
LazyASTImporter(ExternalASTMerger &_Parent, ASTContext &ToContext,
FileManager &ToFileManager, ASTContext &FromContext,
FileManager &FromFileManager,
- const ExternalASTMerger::OriginMap &_FromOrigins)
+ const ExternalASTMerger::OriginMap &_FromOrigins,
+ std::shared_ptr<ASTImporterSharedState> SharedState)
: ASTImporter(ToContext, ToFileManager, FromContext, FromFileManager,
- /*MinimalImport=*/true),
+ /*MinimalImport=*/true, SharedState),
Parent(_Parent), Reverse(FromContext, FromFileManager, ToContext,
- ToFileManager, /*MinimalImport=*/true), FromOrigins(_FromOrigins) {}
+ ToFileManager, /*MinimalImport=*/true),
+ FromOrigins(_FromOrigins) {}
/// Whenever a DeclContext is imported, ensure that ExternalASTSource's origin
/// map is kept up to date. Also set the appropriate flags.
@@ -314,6 +316,8 @@ void ExternalASTMerger::RecordOriginImpl(const DeclContext *ToDC, DCOrigin Origi
ExternalASTMerger::ExternalASTMerger(const ImporterTarget &Target,
llvm::ArrayRef<ImporterSource> Sources) : LogStream(&llvm::nulls()), Target(Target) {
+ SharedState = std::make_shared<ASTImporterSharedState>(
+ *Target.AST.getTranslationUnitDecl());
AddSources(Sources);
}
@@ -321,7 +325,7 @@ void ExternalASTMerger::AddSources(llvm::ArrayRef<ImporterSource> Sources) {
for (const ImporterSource &S : Sources) {
assert(&S.AST != &Target.AST);
Importers.push_back(std::make_unique<LazyASTImporter>(
- *this, Target.AST, Target.FM, S.AST, S.FM, S.OM));
+ *this, Target.AST, Target.FM, S.AST, S.FM, S.OM, SharedState));
}
}
OpenPOWER on IntegriCloud