[modules] Deserialize CXXCtorInitializer list for a constructor lazily.
Previously we'd deserialize the list of mem-initializers for a constructor when we deserialized the declaration of the constructor. That could trigger a significant amount of unnecessary work (pulling in all base classes recursively, for a start) and was causing problems for the modules buildbot due to cyclic deserializations. We now deserialize these on demand. This creates a certain amount of duplication with the handling of CXXBaseSpecifiers; I'll look into reducing that next. llvm-svn: 233052
This commit is contained in:
@@ -38,6 +38,7 @@ ModuleFile::ModuleFile(ModuleKind Kind, unsigned Generation)
|
||||
SelectorLookupTableData(nullptr), SelectorLookupTable(nullptr),
|
||||
LocalNumDecls(0), DeclOffsets(nullptr), BaseDeclID(0),
|
||||
LocalNumCXXBaseSpecifiers(0), CXXBaseSpecifiersOffsets(nullptr),
|
||||
LocalNumCXXCtorInitializers(0), CXXCtorInitializersOffsets(nullptr),
|
||||
FileSortedDecls(nullptr), NumFileSortedDecls(0),
|
||||
RedeclarationsMap(nullptr), LocalNumRedeclarationsInMap(0),
|
||||
ObjCCategoriesMap(nullptr), LocalNumObjCCategoriesInMap(0),
|
||||
|
||||
Reference in New Issue
Block a user