diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-08-30 04:46:40 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-08-30 04:46:40 +0000 |
| commit | a4ba74c5f50a1f03fdf7ff23b6b1a2380fb58a8c (patch) | |
| tree | f1811cdd67505f2fddaba0d9386044cd8d2b1f14 /clang/lib/Serialization | |
| parent | 8568e576b0e638e94993e437b9dc4b685ae295ae (diff) | |
| download | bcm5719-llvm-a4ba74c5f50a1f03fdf7ff23b6b1a2380fb58a8c.tar.gz bcm5719-llvm-a4ba74c5f50a1f03fdf7ff23b6b1a2380fb58a8c.zip | |
Don't eagerly load all conversion operators when loading a class declaration
from a PCH/module.
llvm-svn: 189646
Diffstat (limited to 'clang/lib/Serialization')
| -rw-r--r-- | clang/lib/Serialization/ASTReader.cpp | 6 | ||||
| -rw-r--r-- | clang/lib/Serialization/ASTWriter.cpp | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index 6a2db82c436..5b55390730d 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -6972,14 +6972,14 @@ ReadTemplateArgumentList(SmallVectorImpl<TemplateArgument> &TemplArgs, } /// \brief Read a UnresolvedSet structure. -void ASTReader::ReadUnresolvedSet(ModuleFile &F, ASTUnresolvedSet &Set, +void ASTReader::ReadUnresolvedSet(ModuleFile &F, LazyASTUnresolvedSet &Set, const RecordData &Record, unsigned &Idx) { unsigned NumDecls = Record[Idx++]; Set.reserve(Context, NumDecls); while (NumDecls--) { - NamedDecl *D = ReadDeclAs<NamedDecl>(F, Record, Idx); + DeclID ID = ReadDeclID(F, Record, Idx); AccessSpecifier AS = (AccessSpecifier)Record[Idx++]; - Set.addDecl(Context, D, AS); + Set.addLazyDecl(Context, ID, AS); } } diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index 7f1bd9b882e..f8e8b5d7ada 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -5117,8 +5117,8 @@ void ASTWriter::AddCXXDefinitionData(const CXXRecordDecl *D, RecordDataImpl &Rec AddCXXBaseSpecifiersRef(Data.getVBases(), Data.getVBases() + Data.NumVBases, Record); - AddUnresolvedSet(Data.Conversions, Record); - AddUnresolvedSet(Data.VisibleConversions, Record); + AddUnresolvedSet(Data.Conversions.get(*Context), Record); + AddUnresolvedSet(Data.VisibleConversions.get(*Context), Record); // Data.Definition is the owning decl, no need to write it. AddDeclRef(D->getFirstFriend(), Record); |

