diff options
| author | Ted Kremenek <kremenek@apple.com> | 2007-12-04 00:28:54 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2007-12-04 00:28:54 +0000 |
| commit | 0bf3e33dcc45bac2c466e34e6668399da3bcaae4 (patch) | |
| tree | acdde7bf81718d2365c419a78e1e953a68d4f268 /clang/AST/StmtSerialization.cpp | |
| parent | 9c26202c762e27c69dc3bd8b7e4ca162eb0d6415 (diff) | |
| download | bcm5719-llvm-0bf3e33dcc45bac2c466e34e6668399da3bcaae4.tar.gz bcm5719-llvm-0bf3e33dcc45bac2c466e34e6668399da3bcaae4.zip | |
Implemented serialization for ObjcAtCatchStmt.
llvm-svn: 44563
Diffstat (limited to 'clang/AST/StmtSerialization.cpp')
| -rw-r--r-- | clang/AST/StmtSerialization.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/clang/AST/StmtSerialization.cpp b/clang/AST/StmtSerialization.cpp index 120b68e5c5c..ea136bf9ca0 100644 --- a/clang/AST/StmtSerialization.cpp +++ b/clang/AST/StmtSerialization.cpp @@ -155,6 +155,9 @@ Stmt* Stmt::Create(Deserializer& D) { //==--------------------------------------==// // Objective C //==--------------------------------------==// + + case ObjcAtCatchStmtClass: + return ObjcAtCatchStmt::CreateImpl(D); case ObjCIvarRefExprClass: return ObjCIvarRefExpr::CreateImpl(D); @@ -825,6 +828,25 @@ WhileStmt* WhileStmt::CreateImpl(Deserializer& D) { // Objective C Serialization //===----------------------------------------------------------------------===// +void ObjcAtCatchStmt::EmitImpl(Serializer& S) const { + S.Emit(AtCatchLoc); + S.Emit(RParenLoc); + S.EmitPtr(NextAtCatchStmt); + S.BatchEmitOwnedPtrs((unsigned) END_EXPR,&SubExprs[0]); +} + +ObjcAtCatchStmt* ObjcAtCatchStmt::CreateImpl(Deserializer& D) { + SourceLocation AtCatchLoc = SourceLocation::ReadVal(D); + SourceLocation RParenLoc = SourceLocation::ReadVal(D); + + ObjcAtCatchStmt* stmt = new ObjcAtCatchStmt(AtCatchLoc,RParenLoc); + + D.ReadPtr(stmt->NextAtCatchStmt); // Allows backpatching. + D.BatchReadOwnedPtrs((unsigned) END_EXPR, &stmt->SubExprs[0]); + + return stmt; +} + void ObjCIvarRefExpr::EmitImpl(Serializer& S) const { S.Emit(Loc); S.Emit(getType()); |

