diff options
author | Douglas Gregor <dgregor@apple.com> | 2008-11-04 14:56:14 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2008-11-04 14:56:14 +0000 |
commit | 8ea1f53420c063e893c055ebeb6bac7da8fb8785 (patch) | |
tree | 024973249c4bc6b5be1b940a182a895393d66ce2 /clang/lib/AST/StmtSerialization.cpp | |
parent | c6a5b0979f5132b6553008c98d442b14b5fdc331 (diff) | |
download | bcm5719-llvm-8ea1f53420c063e893c055ebeb6bac7da8fb8785.tar.gz bcm5719-llvm-8ea1f53420c063e893c055ebeb6bac7da8fb8785.zip |
Add a new expression class, ObjCSuperExpr, to handle the Objective-C 'super'. Remove ObjCThis from PredefinedExpr
llvm-svn: 58698
Diffstat (limited to 'clang/lib/AST/StmtSerialization.cpp')
-rw-r--r-- | clang/lib/AST/StmtSerialization.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
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. //===----------------------------------------------------------------------===// |