summaryrefslogtreecommitdiffstats
path: root/clang/AST/StmtSerialization.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2007-11-13 22:16:23 +0000
committerTed Kremenek <kremenek@apple.com>2007-11-13 22:16:23 +0000
commitb8f51d551204458cc980093c3bfcc985a72ad801 (patch)
treef91397a61d8b7949416621de503c9aef3ca36fd3 /clang/AST/StmtSerialization.cpp
parenta0f78974a6e3f048063146db44f74e34ba9434b7 (diff)
downloadbcm5719-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.cpp19
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);
}
OpenPOWER on IntegriCloud