Added reverse iterators for the body of CompountStmt. These are useful for
CFG construction (among other potential uses).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41248 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/AST/Stmt.h b/include/clang/AST/Stmt.h
index c2d46ab..7eefd7f 100644
--- a/include/clang/AST/Stmt.h
+++ b/include/clang/AST/Stmt.h
@@ -122,7 +122,16 @@
const_body_iterator body_begin() const { return Body.begin(); }
const_body_iterator body_end() const { return Body.end(); }
const Stmt *body_back() const { return Body.back(); }
-
+
+ typedef llvm::SmallVector<Stmt*, 16>::reverse_iterator reverse_body_iterator;
+ reverse_body_iterator body_rbegin() { return Body.rbegin(); }
+ reverse_body_iterator body_rend() { return Body.rend(); }
+
+ typedef llvm::SmallVector<Stmt*, 16>::const_reverse_iterator
+ const_reverse_body_iterator;
+ const_reverse_body_iterator body_rbegin() const { return Body.rbegin(); }
+ const_reverse_body_iterator body_rend() const { return Body.rend(); }
+
void push_back(Stmt *S) { Body.push_back(S); }
static bool classof(const Stmt *T) {