summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-01-29 21:21:30 +0000
committerTed Kremenek <kremenek@apple.com>2008-01-29 21:21:30 +0000
commit15ad4cf46b6875c1b0a2a89c6521c63b9f84fe12 (patch)
treeefd3cb8cf23992bb6bfc0c55e4b0249f6397b976 /clang
parent8d5bfe58441eb935422fc20ce60c5380396e9885 (diff)
downloadbcm5719-llvm-15ad4cf46b6875c1b0a2a89c6521c63b9f84fe12.tar.gz
bcm5719-llvm-15ad4cf46b6875c1b0a2a89c6521c63b9f84fe12.zip
- Hooked up deserialization of ObjCAtSynchronizedStmt Stmt::Create().
- Some minor optimizations of the encoding format for ObjCAtSynchronizedStmt. - Reordered methods so that the deserialization methods for ObjCAtSynchronizedStmt appear in alphabetical order with the corresponding methods of the other AST nodes. llvm-svn: 46529
Diffstat (limited to 'clang')
-rw-r--r--clang/AST/StmtSerialization.cpp31
1 files changed, 17 insertions, 14 deletions
diff --git a/clang/AST/StmtSerialization.cpp b/clang/AST/StmtSerialization.cpp
index 8394dc6ea0d..8e743e6cb7e 100644
--- a/clang/AST/StmtSerialization.cpp
+++ b/clang/AST/StmtSerialization.cpp
@@ -161,6 +161,9 @@ Stmt* Stmt::Create(Deserializer& D) {
case ObjCAtFinallyStmtClass:
return ObjCAtFinallyStmt::CreateImpl(D);
+
+ case ObjCAtSynchronizedStmtClass:
+ return ObjCAtSynchronizedStmt::CreateImpl(D);
case ObjCAtThrowStmtClass:
return ObjCAtThrowStmt::CreateImpl(D);
@@ -883,6 +886,20 @@ ObjCAtFinallyStmt* ObjCAtFinallyStmt::CreateImpl(Deserializer& D) {
return new ObjCAtFinallyStmt(Loc,AtFinallyStmt);
}
+void ObjCAtSynchronizedStmt::EmitImpl(Serializer& S) const {
+ S.Emit(AtSynchronizedLoc);
+ S.BatchEmitOwnedPtrs(SynchExpr, SynchBody);
+}
+
+ObjCAtSynchronizedStmt* ObjCAtSynchronizedStmt::CreateImpl(Deserializer& D) {
+ SourceLocation L = SourceLocation::ReadVal(D);
+ Expr *syncExpr;
+ Stmt *synchBody;
+ D.BatchReadOwnedPtrs(syncExpr, synchBody);
+ ObjCAtSynchronizedStmt* stmt = new ObjCAtSynchronizedStmt(L,syncExpr,synchBody);
+ return stmt;
+}
+
void ObjCAtThrowStmt::EmitImpl(Serializer& S) const {
S.Emit(AtThrowLoc);
S.EmitOwnedPtr(Throw);
@@ -893,20 +910,6 @@ ObjCAtThrowStmt* ObjCAtThrowStmt::CreateImpl(Deserializer& D) {
Stmt* Throw = D.ReadOwnedPtr<Stmt>();
return new ObjCAtThrowStmt(L,Throw);
}
-
-void ObjCAtSynchronizedStmt::EmitImpl(Serializer& S) const {
- S.Emit(AtSynchronizedLoc);
- S.EmitOwnedPtr(SynchExpr);
- S.EmitOwnedPtr(SynchBody);
-}
-
-ObjCAtSynchronizedStmt* ObjCAtSynchronizedStmt::CreateImpl(Deserializer& D) {
- SourceLocation L = SourceLocation::ReadVal(D);
- Expr *syncExpr = D.ReadOwnedPtr<Expr>();
- Stmt *synchBody = D.ReadOwnedPtr<Stmt>();
- ObjCAtSynchronizedStmt* stmt = new ObjCAtSynchronizedStmt(L,syncExpr,synchBody);
- return stmt;
-}
void ObjCAtTryStmt::EmitImpl(Serializer& S) const {
S.Emit(AtTryLoc);
OpenPOWER on IntegriCloud