diff options
| author | Ted Kremenek <kremenek@apple.com> | 2007-11-13 22:16:23 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2007-11-13 22:16:23 +0000 |
| commit | b8f51d551204458cc980093c3bfcc985a72ad801 (patch) | |
| tree | f91397a61d8b7949416621de503c9aef3ca36fd3 /clang/AST/StmtSerialization.cpp | |
| parent | a0f78974a6e3f048063146db44f74e34ba9434b7 (diff) | |
| download | bcm5719-llvm-b8f51d551204458cc980093c3bfcc985a72ad801.tar.gz bcm5719-llvm-b8f51d551204458cc980093c3bfcc985a72ad801.zip | |
Implemented serialization for MemberExpr.
llvm-svn: 44074
Diffstat (limited to 'clang/AST/StmtSerialization.cpp')
| -rw-r--r-- | clang/AST/StmtSerialization.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/clang/AST/StmtSerialization.cpp b/clang/AST/StmtSerialization.cpp index fb251edb434..44796c8291a 100644 --- a/clang/AST/StmtSerialization.cpp +++ b/clang/AST/StmtSerialization.cpp @@ -110,6 +110,9 @@ Stmt* Stmt::Create(Deserializer& D) { case LabelStmtClass: return LabelStmt::CreateImpl(D); + case MemberExprClass: + return MemberExpr::CreateImpl(D); + case NullStmtClass: return NullStmt::CreateImpl(D); @@ -509,6 +512,22 @@ LabelStmt* LabelStmt::CreateImpl(Deserializer& D) { return new LabelStmt(IdentLoc,Label,SubStmt); } +void MemberExpr::EmitImpl(Serializer& S) const { + S.Emit(MemberLoc); + S.EmitPtr(MemberDecl); + S.EmitBool(IsArrow); + S.EmitOwnedPtr(Base); +} + +MemberExpr* MemberExpr::CreateImpl(Deserializer& D) { + SourceLocation L = SourceLocation::ReadVal(D); + FieldDecl* MemberDecl = cast<FieldDecl>(D.ReadPtr<Decl>()); + bool IsArrow = D.ReadBool(); + Expr* base = D.ReadOwnedPtr<Expr>(); + + return new MemberExpr(base,IsArrow,MemberDecl,L); +} + void NullStmt::EmitImpl(Serializer& S) const { S.Emit(SemiLoc); } |

