summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2012-06-21 08:50:04 +0000
committerDaniel Jasper <djasper@google.com>2012-06-21 08:50:04 +0000
commitc4dabab94141371f16bddcb89779c75e1362df7e (patch)
tree53a2cce923e5ef001b278cadad21919b3fb77278 /clang
parentf50a9ffd0bea49afc0cfcea588dc73962cc7ba3a (diff)
downloadbcm5719-llvm-c4dabab94141371f16bddcb89779c75e1362df7e.tar.gz
bcm5719-llvm-c4dabab94141371f16bddcb89779c75e1362df7e.zip
Make the RecursiveASTVisitor visit the body of a range-based for loop
again. This was broken in r158395. llvm-svn: 158907
Diffstat (limited to 'clang')
-rw-r--r--clang/include/clang/AST/RecursiveASTVisitor.h1
-rw-r--r--clang/unittests/Tooling/RecursiveASTVisitorTest.cpp3
2 files changed, 3 insertions, 1 deletions
diff --git a/clang/include/clang/AST/RecursiveASTVisitor.h b/clang/include/clang/AST/RecursiveASTVisitor.h
index 2014f071523..d751d556e9f 100644
--- a/clang/include/clang/AST/RecursiveASTVisitor.h
+++ b/clang/include/clang/AST/RecursiveASTVisitor.h
@@ -1878,6 +1878,7 @@ DEF_TRAVERSE_STMT(CXXForRangeStmt, {
if (!shouldVisitImplicitCode()) {
TRY_TO(TraverseStmt(S->getLoopVarStmt()));
TRY_TO(TraverseStmt(S->getRangeInit()));
+ TRY_TO(TraverseStmt(S->getBody()));
// Visit everything else only if shouldVisitImplicitCode().
return true;
}
diff --git a/clang/unittests/Tooling/RecursiveASTVisitorTest.cpp b/clang/unittests/Tooling/RecursiveASTVisitorTest.cpp
index 9d693095d7c..9ef86b552cf 100644
--- a/clang/unittests/Tooling/RecursiveASTVisitorTest.cpp
+++ b/clang/unittests/Tooling/RecursiveASTVisitorTest.cpp
@@ -261,9 +261,10 @@ TEST(RecursiveASTVisitor, VisitsBaseClassTemplateArguments) {
TEST(RecursiveASTVisitor, VisitsCXXForRangeStmtRange) {
DeclRefExprVisitor Visitor;
Visitor.ExpectMatch("x", 2, 25);
+ Visitor.ExpectMatch("x", 2, 30);
EXPECT_TRUE(Visitor.runOver(
"int x[5];\n"
- "void f() { for (int i : x) {} }"));
+ "void f() { for (int i : x) { x[0] = 1; } }"));
}
TEST(RecursiveASTVisitor, VisitsCXXForRangeStmtLoopVariable) {
OpenPOWER on IntegriCloud