[cfe-commits] r44094 - in /cfe/trunk: AST/TypeSerialization.cpp include/clang/AST/Type.h
Ted Kremenek
kremenek at apple.com
Tue Nov 13 16:38:50 PST 2007
Author: kremenek
Date: Tue Nov 13 18:38:50 2007
New Revision: 44094
URL: http://llvm.org/viewvc/llvm-project?rev=44094&view=rev
Log:
Implemented serialization of FunctionTypeNoProto.
Modified:
cfe/trunk/AST/TypeSerialization.cpp
cfe/trunk/include/clang/AST/Type.h
Modified: cfe/trunk/AST/TypeSerialization.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/AST/TypeSerialization.cpp?rev=44094&r1=44093&r2=44094&view=diff
==============================================================================
--- cfe/trunk/AST/TypeSerialization.cpp (original)
+++ cfe/trunk/AST/TypeSerialization.cpp Tue Nov 13 18:38:50 2007
@@ -73,6 +73,10 @@
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 @@
}
//===----------------------------------------------------------------------===//
-// FunctionTypeProto
+// FunctionTypeNoProto
//===----------------------------------------------------------------------===//
void FunctionTypeProto::EmitImpl(Serializer& S) const {
@@ -148,12 +152,24 @@
unsigned NumArgs = D.ReadInt();
llvm::SmallVector<QualType,15> Args;
-
+
for (unsigned j = 0; j < NumArgs; ++j)
Args.push_back(QualType::ReadVal(D));
-
+
return Context.getFunctionType(ResultType,&*Args.begin(),
- NumArgs,isVariadic).getTypePtr();
+ 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();
}
//===----------------------------------------------------------------------===//
Modified: cfe/trunk/include/clang/AST/Type.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Type.h?rev=44094&r1=44093&r2=44094&view=diff
==============================================================================
--- cfe/trunk/include/clang/AST/Type.h (original)
+++ cfe/trunk/include/clang/AST/Type.h Tue Nov 13 18:38:50 2007
@@ -751,6 +751,11 @@
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.
More information about the cfe-commits
mailing list