forked from OSchip/llvm-project
Implemented serialization for MemberExpr.
llvm-svn: 44074
This commit is contained in:
parent
a0f78974a6
commit
b8f51d5512
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -627,6 +627,9 @@ public:
|
|||
// 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
|
||||
|
|
Loading…
Reference in New Issue