summaryrefslogtreecommitdiffstats
path: root/clang/AST
diff options
context:
space:
mode:
Diffstat (limited to 'clang/AST')
-rw-r--r--clang/AST/ExprCXX.cpp2
-rw-r--r--clang/AST/Stmt.cpp2
-rw-r--r--clang/AST/StmtIterator.cpp27
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);
+}
OpenPOWER on IntegriCloud