T->NumElements = D.ReadInt();
return T;
}
+
+void FunctionType::EmitFunctionTypeInternal(llvm::Serializer &S) const {
+ EmitTypeInternal(S);
+ S.EmitBool(SubClassData);
+ S.Emit(ResultType);
+}
+
+void FunctionType::ReadFunctionTypeInternal(llvm::Deserializer& D) {
+ ReadTypeInternal(D);
+ SubClassData = D.ReadBool();
+ D.Read(ResultType);
+}
+
+
+FunctionTypeNoProto* FunctionTypeNoProto::Materialize(llvm::Deserializer& D) {
+ FunctionTypeNoProto* T = new FunctionTypeNoProto(QualType(),QualType());
+ T->ReadFunctionTypeInternal(D);
+ return T;
+}
T->getTypeClass() == FunctionProto;
}
static bool classof(const FunctionType *) { return true; }
+
+protected:
+ void EmitFunctionTypeInternal(llvm::Serializer& S) const;
+ void ReadFunctionTypeInternal(llvm::Deserializer& D);
};
/// FunctionTypeNoProto - Represents a K&R-style 'int foo()' function, which has
return T->getTypeClass() == FunctionNoProto;
}
static bool classof(const FunctionTypeNoProto *) { return true; }
+
+ void Emit(llvm::Serializer& S) const { EmitFunctionTypeInternal(S); }
+ static FunctionTypeNoProto* Materialize(llvm::Deserializer& D);
};
/// FunctionTypeProto - Represents a prototype with argument type info, e.g.