forked from OSchip/llvm-project
Record module loaders and module source order.
llvm-svn: 115334
This commit is contained in:
parent
2d084d07c8
commit
3f6b753f9d
|
@ -193,7 +193,7 @@ private:
|
|||
/// \brief The AST consumer.
|
||||
ASTConsumer *Consumer;
|
||||
|
||||
/// \brief Information that is needed for every file in the chain.
|
||||
/// \brief Information that is needed for every module.
|
||||
struct PerFileData {
|
||||
PerFileData();
|
||||
~PerFileData();
|
||||
|
@ -318,12 +318,25 @@ private:
|
|||
///
|
||||
/// The dynamic type of this stat cache is always ASTStatCache
|
||||
void *StatCache;
|
||||
|
||||
|
||||
/// \brief The number of preallocated preprocessing entities in the
|
||||
/// preprocessing record.
|
||||
unsigned NumPreallocatedPreprocessingEntities;
|
||||
|
||||
/// \brief The next module in source order.
|
||||
PerFileData *NextInSource;
|
||||
|
||||
/// \brief All the modules that loaded this one. Can contain NULL for
|
||||
/// directly loaded modules.
|
||||
llvm::SmallVector<PerFileData *, 1> Loaders;
|
||||
};
|
||||
|
||||
/// \brief All loaded modules, indexed by name.
|
||||
llvm::StringMap<PerFileData*> Modules;
|
||||
|
||||
/// \brief The first module in source order.
|
||||
PerFileData *FirstInSource;
|
||||
|
||||
/// \brief The chain of AST files. The first entry is the one named by the
|
||||
/// user, the last one is the one that doesn't depend on anything further.
|
||||
/// That is, the entry I was created with -include-pch I+1.
|
||||
|
|
|
@ -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() {
|
||||
|
|
Loading…
Reference in New Issue