diff options
-rw-r--r-- | AST/StmtSerialization.cpp | 12 | ||||
-rw-r--r-- | include/clang/AST/Stmt.h | 3 |
2 files changed, 15 insertions, 0 deletions
diff --git a/AST/StmtSerialization.cpp b/AST/StmtSerialization.cpp index e0b87c7cab..4595acc226 100644 --- a/AST/StmtSerialization.cpp +++ b/AST/StmtSerialization.cpp @@ -43,6 +43,9 @@ Stmt* Stmt::Materialize(llvm::Deserializer& D) { case CompoundStmtClass: return CompoundStmt::directMaterialize(D); + case ContinueStmtClass: + return ContinueStmt::directMaterialize(D); + case DeclRefExprClass: return DeclRefExpr::directMaterialize(D); @@ -160,6 +163,15 @@ CompoundStmt* CompoundStmt::directMaterialize(llvm::Deserializer& D) { return stmt; } +void ContinueStmt::directEmit(llvm::Serializer& S) const { + S.Emit(ContinueLoc); +} + +ContinueStmt* ContinueStmt::directMaterialize(llvm::Deserializer& D) { + SourceLocation Loc = SourceLocation::ReadVal(D); + return new ContinueStmt(Loc); +} + void DeclStmt::directEmit(llvm::Serializer& S) const { // FIXME: special handling for struct decls. S.EmitOwnedPtr(getDecl()); diff --git a/include/clang/AST/Stmt.h b/include/clang/AST/Stmt.h index a7cfab0c83..10236e1668 100644 --- a/include/clang/AST/Stmt.h +++ b/include/clang/AST/Stmt.h @@ -644,6 +644,9 @@ public: // Iterators virtual child_iterator child_begin(); virtual child_iterator child_end(); + + virtual void directEmit(llvm::Serializer& S) const; + static ContinueStmt* directMaterialize(llvm::Deserializer& D); }; /// BreakStmt - This represents a break. |