diff options
| author | Ted Kremenek <kremenek@apple.com> | 2007-11-08 00:41:37 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2007-11-08 00:41:37 +0000 |
| commit | c1cddef7c9c8c62552b8b72653b9d2123ddb10cf (patch) | |
| tree | e7bb4fa04d90dd04ef4dc156ad912940492025db /clang/AST/StmtSerialization.cpp | |
| parent | ec51171319f90ddec80fab09cfc08fcb5ce0171a (diff) | |
| download | bcm5719-llvm-c1cddef7c9c8c62552b8b72653b9d2123ddb10cf.tar.gz bcm5719-llvm-c1cddef7c9c8c62552b8b72653b9d2123ddb10cf.zip | |
Implemented serialization of CompoundAssignOperator.
llvm-svn: 43860
Diffstat (limited to 'clang/AST/StmtSerialization.cpp')
| -rw-r--r-- | clang/AST/StmtSerialization.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/clang/AST/StmtSerialization.cpp b/clang/AST/StmtSerialization.cpp index 437d8c6e485..86d52a4f681 100644 --- a/clang/AST/StmtSerialization.cpp +++ b/clang/AST/StmtSerialization.cpp @@ -56,6 +56,9 @@ Stmt* Stmt::Materialize(Deserializer& D) { case CharacterLiteralClass: return CharacterLiteral::directMaterialize(D); + case CompoundAssignOperatorClass: + return CompoundAssignOperator::directMaterialize(D); + case CompoundStmtClass: return CompoundStmt::directMaterialize(D); @@ -228,6 +231,26 @@ CharacterLiteral* CharacterLiteral::directMaterialize(Deserializer& D) { return new CharacterLiteral(value,T,Loc); } +void CompoundAssignOperator::directEmit(Serializer& S) const { + S.Emit(getType()); + S.Emit(ComputationType); + S.Emit(getOperatorLoc()); + S.EmitInt(getOpcode()); + S.BatchEmitOwnedPtrs(getLHS(),getRHS()); +} + +CompoundAssignOperator* +CompoundAssignOperator::directMaterialize(Deserializer& D) { + QualType t = QualType::ReadVal(D); + QualType c = QualType::ReadVal(D); + SourceLocation L = SourceLocation::ReadVal(D); + Opcode Opc = static_cast<Opcode>(D.ReadInt()); + Expr* LHS, *RHS; + D.BatchReadOwnedPtrs(LHS,RHS); + + return new CompoundAssignOperator(LHS,RHS,Opc,t,c,L); +} + void CompoundStmt::directEmit(Serializer& S) const { S.Emit(LBracLoc); S.Emit(RBracLoc); |

