Implemented serialization of FunctionTypeNoProto.

llvm-svn: 44094
This commit is contained in:
Ted Kremenek 2007-11-14 00:38:50 +00:00
parent 7068cef079
commit 164faf98f3
2 changed files with 25 additions and 4 deletions

View File

@ -73,6 +73,10 @@ void Type::Create(ASTContext& Context, unsigned i, Deserializer& D) {
case Type::ConstantArray:
D.RegisterPtr(PtrID,ConstantArrayType::CreateImpl(Context,D));
case Type::FunctionNoProto:
D.RegisterPtr(PtrID,FunctionTypeNoProto::CreateImpl(Context,D));
break;
case Type::FunctionProto:
D.RegisterPtr(PtrID,FunctionTypeProto::CreateImpl(Context,D));
break;
@ -130,7 +134,7 @@ Type* ConstantArrayType::CreateImpl(ASTContext& Context, Deserializer& D) {
}
//===----------------------------------------------------------------------===//
// FunctionTypeProto
// FunctionTypeNoProto
//===----------------------------------------------------------------------===//
void FunctionTypeProto::EmitImpl(Serializer& S) const {
@ -156,6 +160,18 @@ Type* FunctionTypeProto::CreateImpl(ASTContext& Context, Deserializer& D) {
NumArgs,isVariadic).getTypePtr();
}
//===----------------------------------------------------------------------===//
// FunctionTypeProto
//===----------------------------------------------------------------------===//
void FunctionTypeNoProto::EmitImpl(Serializer& S) const {
S.Emit(getResultType());
}
Type* FunctionTypeNoProto::CreateImpl(ASTContext& Context, Deserializer& D) {
return Context.getFunctionTypeNoProto(QualType::ReadVal(D)).getTypePtr();
}
//===----------------------------------------------------------------------===//
// PointerType
//===----------------------------------------------------------------------===//

View File

@ -751,6 +751,11 @@ public:
return T->getTypeClass() == FunctionNoProto;
}
static bool classof(const FunctionTypeNoProto *) { return true; }
protected:
virtual void EmitImpl(llvm::Serializer& S) const;
static Type* CreateImpl(ASTContext& Context,llvm::Deserializer& D);
friend class Type;
};
/// FunctionTypeProto - Represents a prototype with argument type info, e.g.