diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-04-17 00:29:51 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-04-17 00:29:51 +0000 |
commit | 67d8249924ef38a5375ff9c92cd21c1854d6abab (patch) | |
tree | 0b9a8b72490bcc87f76fd2d77a0504178222b48a /lib/Frontend/PCHWriter.cpp | |
parent | d921cf976b4769af8d06d6763a2547dadf7940ab (diff) |
PCH support for do-while and for loops
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69334 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend/PCHWriter.cpp')
-rw-r--r-- | lib/Frontend/PCHWriter.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/Frontend/PCHWriter.cpp b/lib/Frontend/PCHWriter.cpp index 0d51401669..29c9eb81f4 100644 --- a/lib/Frontend/PCHWriter.cpp +++ b/lib/Frontend/PCHWriter.cpp @@ -454,6 +454,8 @@ namespace { void VisitIfStmt(IfStmt *S); void VisitSwitchStmt(SwitchStmt *S); void VisitWhileStmt(WhileStmt *S); + void VisitDoStmt(DoStmt *S); + void VisitForStmt(ForStmt *S); void VisitContinueStmt(ContinueStmt *S); void VisitBreakStmt(BreakStmt *S); void VisitExpr(Expr *E); @@ -560,6 +562,24 @@ void PCHStmtWriter::VisitWhileStmt(WhileStmt *S) { Code = pch::STMT_WHILE; } +void PCHStmtWriter::VisitDoStmt(DoStmt *S) { + VisitStmt(S); + Writer.WriteSubStmt(S->getCond()); + Writer.WriteSubStmt(S->getBody()); + Writer.AddSourceLocation(S->getDoLoc(), Record); + Code = pch::STMT_DO; +} + +void PCHStmtWriter::VisitForStmt(ForStmt *S) { + VisitStmt(S); + Writer.WriteSubStmt(S->getInit()); + Writer.WriteSubStmt(S->getCond()); + Writer.WriteSubStmt(S->getInc()); + Writer.WriteSubStmt(S->getBody()); + Writer.AddSourceLocation(S->getForLoc(), Record); + Code = pch::STMT_FOR; +} + void PCHStmtWriter::VisitContinueStmt(ContinueStmt *S) { VisitStmt(S); Writer.AddSourceLocation(S->getContinueLoc(), Record); |