Implemented serialization of CastExpr.

llvm-svn: 43848
This commit is contained in:
Ted Kremenek 2007-11-07 22:42:34 +00:00
parent b2b5e73f89
commit e87ceeeb4a
2 changed files with 20 additions and 0 deletions

View File

@ -41,6 +41,9 @@ Stmt* Stmt::Materialize(llvm::Deserializer& D) {
case CaseStmtClass:
return CaseStmt::directMaterialize(D);
case CastExprClass:
return CastExpr::directMaterialize(D);
case CharacterLiteralClass:
return CharacterLiteral::directMaterialize(D);
@ -156,6 +159,20 @@ CaseStmt* CaseStmt::directMaterialize(llvm::Deserializer& D) {
return stmt;
}
void CastExpr::directEmit(llvm::Serializer& S) const {
S.Emit(getType());
S.Emit(Loc);
S.EmitOwnedPtr(Op);
}
CastExpr* CastExpr::directMaterialize(llvm::Deserializer& D) {
QualType t = QualType::ReadVal(D);
SourceLocation Loc = SourceLocation::ReadVal(D);
Expr* Op = D.ReadOwnedPtr<Expr>();
return new CastExpr(t,Op,Loc);
}
void CharacterLiteral::directEmit(llvm::Serializer& S) const {
S.Emit(Value);
S.Emit(Loc);

View File

@ -748,6 +748,9 @@ public:
// Iterators
virtual child_iterator child_begin();
virtual child_iterator child_end();
virtual void directEmit(llvm::Serializer& S) const;
static CastExpr* directMaterialize(llvm::Deserializer& D);
};
class BinaryOperator : public Expr {