diff options
author | Douglas Gregor <dgregor@apple.com> | 2008-11-29 04:51:27 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2008-11-29 04:51:27 +0000 |
commit | 2d8b273470684a9cd47f0ce24743cc1f71ef7cbc (patch) | |
tree | 8c9d9c2f5d335dc66c687bb94835d13383ffcd75 /lib/AST/StmtSerialization.cpp | |
parent | 5cf243a883872441d73ca49cea7e20de5802629b (diff) |
Implement the GNU __null extension
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60235 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/StmtSerialization.cpp')
-rw-r--r-- | lib/AST/StmtSerialization.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/AST/StmtSerialization.cpp b/lib/AST/StmtSerialization.cpp index 8bf7039685..3cf1f5497f 100644 --- a/lib/AST/StmtSerialization.cpp +++ b/lib/AST/StmtSerialization.cpp @@ -61,6 +61,9 @@ Stmt* Stmt::Create(Deserializer& D, ASTContext& C) { case CharacterLiteralClass: return CharacterLiteral::CreateImpl(D, C); + case ChooseExprClass: + return ChooseExpr::CreateImpl(D, C); + case CompoundAssignOperatorClass: return CompoundAssignOperator::CreateImpl(D, C); @@ -94,6 +97,9 @@ Stmt* Stmt::Create(Deserializer& D, ASTContext& C) { case ForStmtClass: return ForStmt::CreateImpl(D, C); + case GNUNullExprClass: + return GNUNullExpr::CreateImpl(D, C); + case GotoStmtClass: return GotoStmt::CreateImpl(D, C); @@ -904,6 +910,17 @@ ChooseExpr* ChooseExpr::CreateImpl(llvm::Deserializer& D, ASTContext& C) { return CE; } +void GNUNullExpr::EmitImpl(llvm::Serializer &S) const { + S.Emit(getType()); + S.Emit(TokenLoc); +} + +GNUNullExpr *GNUNullExpr::CreateImpl(llvm::Deserializer &D, ASTContext &C) { + QualType T = QualType::ReadVal(D); + SourceLocation TL = SourceLocation::ReadVal(D); + return new GNUNullExpr(T, TL); +} + void OverloadExpr::EmitImpl(llvm::Serializer& S) const { S.Emit(getType()); S.Emit(BuiltinLoc); |