Implemented serialization of QualTypes within ASTContext. Clarified
ownership model of some type pointers. Added FIXMEs to serialization.
Added comments to ASTContext indicating which variables we are intentionally
*not* serializing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43618 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/AST/ASTContext.cpp b/AST/ASTContext.cpp
index acba398..3ebc1af 100644
--- a/AST/ASTContext.cpp
+++ b/AST/ASTContext.cpp
@@ -1419,9 +1419,17 @@
EmitSet(VectorTypes,S);
EmitSet(FunctionTypeNoProtos,S);
EmitSet(FunctionTypeProtos,S);
-
// FIXME: EmitSet(ObjcQualifiedInterfaceTypes,S);
- // FIXME: RecourdLayoutInfo
+
+ S.Emit(BuiltinVaListType);
+ S.Emit(ObjcIdType);
+ S.EmitPtr(IdStructType);
+ S.Emit(ObjcProtoType);
+ S.EmitPtr(ProtoStructType);
+ S.Emit(ObjcClassType);
+ S.EmitPtr(ClassStructType);
+ S.Emit(ObjcConstantStringType);
+ // FIXME: S.EmitOwnedPtr(CFConstantStringTypeDecl);
}
ASTContext* ASTContext::Materialize(llvm::Deserializer& D) {
@@ -1466,6 +1474,17 @@
ReadSet(A->VectorTypes, A->Types, D);
ReadSet(A->FunctionTypeNoProtos, A->Types, D);
ReadSet(A->FunctionTypeProtos, A->Types, D);
+ // ReadSet(A->ObjcQualifiedInterfaceTypes,D);
+
+ D.Read(A->BuiltinVaListType);
+ D.Read(A->ObjcIdType);
+ D.ReadPtr(A->IdStructType);
+ D.Read(A->ObjcProtoType);
+ D.ReadPtr(A->ProtoStructType);
+ D.Read(A->ObjcClassType);
+ D.ReadPtr(A->ClassStructType);
+ D.Read(A->ObjcConstantStringType);
+ // FIXME: A->CFConstantStringTypeDecl = D.ReadOwnedPtr<RecordDecl>();
return A;
}