From 8ea1f53420c063e893c055ebeb6bac7da8fb8785 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Tue, 4 Nov 2008 14:56:14 +0000 Subject: Add a new expression class, ObjCSuperExpr, to handle the Objective-C 'super'. Remove ObjCThis from PredefinedExpr llvm-svn: 58698 --- clang/lib/AST/StmtSerialization.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'clang/lib/AST/StmtSerialization.cpp') diff --git a/clang/lib/AST/StmtSerialization.cpp b/clang/lib/AST/StmtSerialization.cpp index aefaee38a42..09aaceffda4 100644 --- a/clang/lib/AST/StmtSerialization.cpp +++ b/clang/lib/AST/StmtSerialization.cpp @@ -191,6 +191,9 @@ Stmt* Stmt::Create(Deserializer& D, ASTContext& C) { case ObjCStringLiteralClass: return ObjCStringLiteral::CreateImpl(D, C); + case ObjCSuperExprClass: + return ObjCSuperExpr::CreateImpl(D, C); + //==--------------------------------------==// // C++ //==--------------------------------------==// @@ -1232,6 +1235,17 @@ ObjCStringLiteral* ObjCStringLiteral::CreateImpl(Deserializer& D, ASTContext& C) return new ObjCStringLiteral(String,T,L); } +void ObjCSuperExpr::EmitImpl(llvm::Serializer& S) const { + S.Emit(getType()); + S.Emit(Loc); +} + +ObjCSuperExpr* ObjCSuperExpr::CreateImpl(llvm::Deserializer& D, ASTContext&) { + QualType Ty = QualType::ReadVal(D); + SourceLocation Loc = SourceLocation::ReadVal(D); + return new ObjCSuperExpr(Loc, Ty); +} + //===----------------------------------------------------------------------===// // Serialization for Clang Extensions. //===----------------------------------------------------------------------===// -- cgit v1.2.3