aboutsummaryrefslogtreecommitdiff
path: root/lib/Serialization/ASTReader.cpp
diff options
context:
space:
mode:
authorSebastian Redl <sebastian.redl@getdesigned.at>2010-10-01 19:59:12 +0000
committerSebastian Redl <sebastian.redl@getdesigned.at>2010-10-01 19:59:12 +0000
commita866e652875c61f09ac29c2f44009ce9f2a25cf2 (patch)
tree1e99522797903fee810a98b94561f5c199854417 /lib/Serialization/ASTReader.cpp
parentae8f9fa5337236e7882bce0bba09bddc521b658c (diff)
Record module loaders and module source order.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115334 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Serialization/ASTReader.cpp')
-rw-r--r--lib/Serialization/ASTReader.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp
index ac7385976c..adb233ac14 100644
--- a/lib/Serialization/ASTReader.cpp
+++ b/lib/Serialization/ASTReader.cpp
@@ -2122,8 +2122,14 @@ ASTReader::ASTReadResult ASTReader::ReadAST(const std::string &FileName) {
}
ASTReader::ASTReadResult ASTReader::ReadASTCore(llvm::StringRef FileName) {
+ PerFileData *Prev = Chain.empty() ? 0 : Chain.back();
Chain.push_back(new PerFileData());
PerFileData &F = *Chain.back();
+ if (Prev)
+ Prev->NextInSource = &F;
+ else
+ FirstInSource = &F;
+ F.Loaders.push_back(Prev);
// Set the AST file name.
F.FileName = FileName;
@@ -4199,7 +4205,7 @@ ASTReader::PerFileData::PerFileData()
MacroDefinitionOffsets(0), LocalNumSelectors(0), SelectorOffsets(0),
SelectorLookupTableData(0), SelectorLookupTable(0), LocalNumDecls(0),
DeclOffsets(0), LocalNumTypes(0), TypeOffsets(0), StatCache(0),
- NumPreallocatedPreprocessingEntities(0)
+ NumPreallocatedPreprocessingEntities(0), NextInSource(0)
{}
ASTReader::PerFileData::~PerFileData() {