From 7338a8299ec393eaf6bb580b5ef9ab2b08b5bd11 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Wed, 7 Nov 2007 17:15:49 +0000 Subject: [PATCH] Implemented serialization of CharacterLiteral. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43824 91177308-0d34-0410-b5e6-96231b3b80d8 --- AST/StmtSerialization.cpp | 16 ++++++++++++++++ include/clang/AST/Expr.h | 3 +++ 2 files changed, 19 insertions(+) diff --git a/AST/StmtSerialization.cpp b/AST/StmtSerialization.cpp index 2d6376c4a9..0cff7c5e67 100644 --- a/AST/StmtSerialization.cpp +++ b/AST/StmtSerialization.cpp @@ -40,6 +40,9 @@ Stmt* Stmt::Materialize(llvm::Deserializer& D) { case CaseStmtClass: return CaseStmt::directMaterialize(D); + case CharacterLiteralClass: + return CharacterLiteral::directMaterialize(D); + case CompoundStmtClass: return CompoundStmt::directMaterialize(D); @@ -142,6 +145,19 @@ CaseStmt* CaseStmt::directMaterialize(llvm::Deserializer& D) { return stmt; } +void CharacterLiteral::directEmit(llvm::Serializer& S) const { + S.Emit(Value); + S.Emit(Loc); + S.Emit(getType()); +} + +CharacterLiteral* CharacterLiteral::directMaterialize(llvm::Deserializer& D) { + unsigned value = D.ReadInt(); + SourceLocation Loc = SourceLocation::ReadVal(D); + QualType T = QualType::ReadVal(D); + return new CharacterLiteral(value,T,Loc); +} + void CompoundStmt::directEmit(llvm::Serializer& S) const { S.Emit(LBracLoc); S.Emit(RBracLoc); diff --git a/include/clang/AST/Expr.h b/include/clang/AST/Expr.h index 9b04f26b5d..7d3827871e 100644 --- a/include/clang/AST/Expr.h +++ b/include/clang/AST/Expr.h @@ -228,6 +228,9 @@ public: // Iterators virtual child_iterator child_begin(); virtual child_iterator child_end(); + + virtual void directEmit(llvm::Serializer& S) const; + static CharacterLiteral* directMaterialize(llvm::Deserializer& D); }; class FloatingLiteral : public Expr { -- 2.40.0