From: Ted Kremenek Date: Tue, 13 Nov 2007 22:55:51 +0000 (+0000) Subject: Implemented serialization of AsmStmt (or rather what is currently implemented X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1f85acd5ff54345788b93111197088160fe9f06e;p=clang Implemented serialization of AsmStmt (or rather what is currently implemented in AsmStmt). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44077 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/AST/StmtSerialization.cpp b/AST/StmtSerialization.cpp index 10563bd0ca..043efb09d5 100644 --- a/AST/StmtSerialization.cpp +++ b/AST/StmtSerialization.cpp @@ -41,6 +41,9 @@ Stmt* Stmt::Create(Deserializer& D) { case ArraySubscriptExprClass: return ArraySubscriptExpr::CreateImpl(D); + case AsmStmtClass: + return AsmStmt::CreateImpl(D); + case BinaryOperatorClass: return BinaryOperator::CreateImpl(D); @@ -175,6 +178,18 @@ ArraySubscriptExpr* ArraySubscriptExpr::CreateImpl(Deserializer& D) { return new ArraySubscriptExpr(LHS,RHS,t,L); } +void AsmStmt::EmitImpl(Serializer& S) const { + S.Emit(AsmLoc); + S.Emit(RParenLoc); +} + +AsmStmt* AsmStmt::CreateImpl(Deserializer& D) { + SourceLocation ALoc = SourceLocation::ReadVal(D); + SourceLocation PLoc = SourceLocation::ReadVal(D); + + return new AsmStmt(ALoc,PLoc); +} + void BinaryOperator::EmitImpl(Serializer& S) const { S.EmitInt(Opc); S.Emit(OpLoc);; diff --git a/include/clang/AST/Stmt.h b/include/clang/AST/Stmt.h index 9e557a323e..20344829d0 100644 --- a/include/clang/AST/Stmt.h +++ b/include/clang/AST/Stmt.h @@ -718,6 +718,9 @@ public: virtual child_iterator child_begin(); virtual child_iterator child_end(); + + virtual void EmitImpl(llvm::Serializer& S) const; + static AsmStmt* CreateImpl(llvm::Deserializer& D); }; /// ObjcAtCatchStmt - This represents objective-c's @catch statement.