[cfe-commits] r44074 - in /cfe/trunk: AST/StmtSerialization.cpp include/clang/AST/Expr.h
Ted Kremenek
kremenek at apple.com
Tue Nov 13 14:16:23 PST 2007
Author: kremenek
Date: Tue Nov 13 16:16:23 2007
New Revision: 44074
URL: http://llvm.org/viewvc/llvm-project?rev=44074&view=rev
Log:
Implemented serialization for MemberExpr.
Modified:
cfe/trunk/AST/StmtSerialization.cpp
cfe/trunk/include/clang/AST/Expr.h
Modified: cfe/trunk/AST/StmtSerialization.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/AST/StmtSerialization.cpp?rev=44074&r1=44073&r2=44074&view=diff
==============================================================================
--- cfe/trunk/AST/StmtSerialization.cpp (original)
+++ cfe/trunk/AST/StmtSerialization.cpp Tue Nov 13 16:16:23 2007
@@ -110,6 +110,9 @@
case LabelStmtClass:
return LabelStmt::CreateImpl(D);
+ case MemberExprClass:
+ return MemberExpr::CreateImpl(D);
+
case NullStmtClass:
return NullStmt::CreateImpl(D);
@@ -509,6 +512,22 @@
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);
}
Modified: cfe/trunk/include/clang/AST/Expr.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Expr.h?rev=44074&r1=44073&r2=44074&view=diff
==============================================================================
--- cfe/trunk/include/clang/AST/Expr.h (original)
+++ cfe/trunk/include/clang/AST/Expr.h Tue Nov 13 16:16:23 2007
@@ -627,6 +627,9 @@
// Iterators
virtual child_iterator child_begin();
virtual child_iterator child_end();
+
+ virtual void EmitImpl(llvm::Serializer& S) const;
+ static MemberExpr* CreateImpl(llvm::Deserializer& D);
};
/// OCUVectorElementExpr - This represents access to specific elements of a
More information about the cfe-commits
mailing list