diff options
Diffstat (limited to 'clang/AST')
| -rw-r--r-- | clang/AST/ExprCXX.cpp | 2 | ||||
| -rw-r--r-- | clang/AST/Stmt.cpp | 2 | ||||
| -rw-r--r-- | clang/AST/StmtIterator.cpp | 27 |
3 files changed, 29 insertions, 2 deletions
diff --git a/clang/AST/ExprCXX.cpp b/clang/AST/ExprCXX.cpp index 093c37e3574..74d471edde4 100644 --- a/clang/AST/ExprCXX.cpp +++ b/clang/AST/ExprCXX.cpp @@ -25,7 +25,7 @@ Stmt::child_iterator CXXCastExpr::child_begin() { } Stmt::child_iterator CXXCastExpr::child_end() { - return child_begin()+1; + return ++child_begin(); } // CXXBoolLiteralExpr diff --git a/clang/AST/Stmt.cpp b/clang/AST/Stmt.cpp index 6768705cee4..c9a86ed28bc 100644 --- a/clang/AST/Stmt.cpp +++ b/clang/AST/Stmt.cpp @@ -168,7 +168,7 @@ Stmt::child_iterator IndirectGotoStmt::child_begin() { return reinterpret_cast<Stmt**>(&Target); } -Stmt::child_iterator IndirectGotoStmt::child_end() { return child_begin()+1; } +Stmt::child_iterator IndirectGotoStmt::child_end() { return ++child_begin(); } // ContinueStmt Stmt::child_iterator ContinueStmt::child_begin() { return NULL; } diff --git a/clang/AST/StmtIterator.cpp b/clang/AST/StmtIterator.cpp new file mode 100644 index 00000000000..aca1f810958 --- /dev/null +++ b/clang/AST/StmtIterator.cpp @@ -0,0 +1,27 @@ +//===--- StmtIterator.cpp - Iterators for Statements ------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by Ted Kremenek and is distributed under +// the University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines internal methods for StmtIterator. +// +//===----------------------------------------------------------------------===// + +#include "clang/AST/StmtIterator.h" +#include "clang/AST/Stmt.h" +#include "clang/AST/Decl.h" + +using namespace clang; + +void StmtIterator::NextDecl() { assert(false); } +void StmtIterator::PrevDecl() { assert(false); } + +Stmt*& StmtIterator::GetInitializer() const { + assert (D && isa<VarDecl>(D)); + assert (cast<VarDecl>(D)->Init); + return reinterpret_cast<Stmt*&>(cast<VarDecl>(D)->Init); +} |

