diff options
| author | Sebastian Redl <sebastian.redl@getdesigned.at> | 2008-12-22 21:35:02 +0000 |
|---|---|---|
| committer | Sebastian Redl <sebastian.redl@getdesigned.at> | 2008-12-22 21:35:02 +0000 |
| commit | 9b244a8797ebcc5d315246d90a74fed432a6972b (patch) | |
| tree | b9aea8b9ccb110f2d296a732afd983230956a481 /clang/lib/AST/StmtSerialization.cpp | |
| parent | 014caa431ce555ea1420f8d173865c9a204d694a (diff) | |
| download | bcm5719-llvm-9b244a8797ebcc5d315246d90a74fed432a6972b.tar.gz bcm5719-llvm-9b244a8797ebcc5d315246d90a74fed432a6972b.zip | |
Full AST support and better Sema support for C++ try-catch.
llvm-svn: 61346
Diffstat (limited to 'clang/lib/AST/StmtSerialization.cpp')
| -rw-r--r-- | clang/lib/AST/StmtSerialization.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/lib/AST/StmtSerialization.cpp b/clang/lib/AST/StmtSerialization.cpp index 2d6f7557195..a6c95b9c046 100644 --- a/clang/lib/AST/StmtSerialization.cpp +++ b/clang/lib/AST/StmtSerialization.cpp @@ -1540,3 +1540,19 @@ CXXCatchStmt::CreateImpl(llvm::Deserializer& D, ASTContext& C) { Stmt *HandlerBlock = D.ReadOwnedPtr<Stmt>(C); return new CXXCatchStmt(CatchLoc, ExDecl, HandlerBlock); } + +void CXXTryStmt::EmitImpl(llvm::Serializer& S) const { + S.Emit(TryLoc); + S.EmitInt(Stmts.size()); + S.BatchEmitOwnedPtrs(Stmts.size(), &Stmts[0]); +} + +CXXTryStmt * +CXXTryStmt::CreateImpl(llvm::Deserializer& D, ASTContext& C) { + SourceLocation TryLoc = SourceLocation::ReadVal(D); + unsigned size = D.ReadInt(); + llvm::SmallVector<Stmt*, 4> Stmts(size); + D.BatchReadOwnedPtrs<Stmt>(size, &Stmts[0], C); + + return new CXXTryStmt(TryLoc, Stmts[0], &Stmts[1], size - 1); +} |

