diff options
author | Ted Kremenek <kremenek@apple.com> | 2007-11-07 22:32:23 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2007-11-07 22:32:23 +0000 |
commit | 28f3d80c661c8de51856cfb91131939c866e533c (patch) | |
tree | b494ac9896c221d1157d5369736a77f53fd3e11d | |
parent | b70a88e67491d41877aab3a56947866e70435d64 (diff) |
Modified serialization of BinaryOperator and CaseStmt to use the new
BatchEmitOwnedPtrs() and BatchReadOwnedPtrs() methods.
Modified serialization of all Stmts to start their own record in the bitstream.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43846 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | AST/StmtSerialization.cpp | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/AST/StmtSerialization.cpp b/AST/StmtSerialization.cpp index 7c671c6a31..5314dacd61 100644 --- a/AST/StmtSerialization.cpp +++ b/AST/StmtSerialization.cpp @@ -19,6 +19,7 @@ using namespace clang; void Stmt::Emit(llvm::Serializer& S) const { + S.FlushRecord(); S.EmitInt(getStmtClass()); directEmit(S); } @@ -112,16 +113,16 @@ void BinaryOperator::directEmit(llvm::Serializer& S) const { S.EmitInt(Opc); S.Emit(OpLoc);; S.Emit(getType()); - S.EmitOwnedPtr(getLHS()); - S.EmitOwnedPtr(getRHS()); + S.BatchEmitOwnedPtrs(getLHS(),getRHS()); } BinaryOperator* BinaryOperator::directMaterialize(llvm::Deserializer& D) { Opcode Opc = static_cast<Opcode>(D.ReadInt()); SourceLocation OpLoc = SourceLocation::ReadVal(D); QualType Result = QualType::ReadVal(D); - Expr* LHS = D.ReadOwnedPtr<Expr>(); - Expr* RHS = D.ReadOwnedPtr<Expr>(); + Expr *LHS, *RHS; + D.BatchReadOwnedPtrs(LHS,RHS); + return new BinaryOperator(LHS,RHS,Opc,Result,OpLoc); } @@ -136,21 +137,18 @@ BreakStmt* BreakStmt::directMaterialize(llvm::Deserializer& D) { void CaseStmt::directEmit(llvm::Serializer& S) const { S.Emit(CaseLoc); - S.EmitOwnedPtr(getLHS()); - S.EmitOwnedPtr(getRHS()); - S.EmitOwnedPtr(getSubStmt()); S.EmitPtr(getNextSwitchCase()); + S.BatchEmitOwnedPtrs(getLHS(),getRHS(),getSubStmt()); } CaseStmt* CaseStmt::directMaterialize(llvm::Deserializer& D) { SourceLocation CaseLoc = SourceLocation::ReadVal(D); - Expr* LHS = D.ReadOwnedPtr<Expr>(); - Expr* RHS = D.ReadOwnedPtr<Expr>(); - Stmt* SubStmt = D.ReadOwnedPtr<Stmt>(); + Expr *LHS, *RHS; + Stmt* SubStmt; + D.BatchReadOwnedPtrs(LHS,RHS,SubStmt); CaseStmt* stmt = new CaseStmt(LHS,RHS,SubStmt,CaseLoc); - stmt->setNextSwitchCase(D.ReadPtr<SwitchCase>()); - + stmt->setNextSwitchCase(D.ReadPtr<SwitchCase>()); return stmt; } |