diff options
| author | Ted Kremenek <kremenek@apple.com> | 2007-11-07 07:19:30 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2007-11-07 07:19:30 +0000 |
| commit | 4210f3dfd73ad3482f9cfa0a382e1fd78f22976d (patch) | |
| tree | 2f991330ede2907443fcc4f9a9af581b7adbe905 /AST/StmtSerialization.cpp | |
| parent | ab373097926c4f24dd653e8b9aebcbf2eff17881 (diff) | |
Implemented serialization of IfStmt.
Fixed declarations of several "directEmit" methods of classes that subclass
Stmt that were missing a "virtual" keyword.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43814 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'AST/StmtSerialization.cpp')
| -rw-r--r-- | AST/StmtSerialization.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/AST/StmtSerialization.cpp b/AST/StmtSerialization.cpp index 7d82d0547e..c6af9a50c7 100644 --- a/AST/StmtSerialization.cpp +++ b/AST/StmtSerialization.cpp @@ -52,6 +52,9 @@ Stmt* Stmt::Materialize(llvm::Deserializer& D) { case DefaultStmtClass: return DefaultStmt::directMaterialize(D); + case IfStmtClass: + return IfStmt::directMaterialize(D); + case IntegerLiteralClass: return IntegerLiteral::directMaterialize(D); @@ -182,6 +185,21 @@ DefaultStmt* DefaultStmt::directMaterialize(llvm::Deserializer& D) { return stmt; } +void IfStmt::directEmit(llvm::Serializer& S) const { + S.Emit(IfLoc); + S.EmitOwnedPtr(getCond()); + S.EmitOwnedPtr(getThen()); + S.EmitOwnedPtr(getElse()); +} + +IfStmt* IfStmt::directMaterialize(llvm::Deserializer& D) { + SourceLocation L = SourceLocation::ReadVal(D); + Expr* Cond = D.ReadOwnedPtr<Expr>(); + Stmt* Then = D.ReadOwnedPtr<Stmt>(); + Stmt* Else = D.ReadOwnedPtr<Stmt>(); + return new IfStmt(L,Cond,Then,Else); +} + void IntegerLiteral::directEmit(llvm::Serializer& S) const { S.Emit(Loc); S.Emit(getType()); |
