diff options
author | Daniel Jasper <djasper@google.com> | 2012-06-21 08:50:04 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2012-06-21 08:50:04 +0000 |
commit | 1071ba9c324d831b437870a1fe63bf2ecdc4e9e4 (patch) | |
tree | 138736cad3312b2b5a9f642421c13611d0485f67 | |
parent | 7f3260764a3614e22dcf24d71c1155f14a9b4e6e (diff) |
Make the RecursiveASTVisitor visit the body of a range-based for loop
again. This was broken in r158395.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158907 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/AST/RecursiveASTVisitor.h | 1 | ||||
-rw-r--r-- | unittests/Tooling/RecursiveASTVisitorTest.cpp | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/include/clang/AST/RecursiveASTVisitor.h b/include/clang/AST/RecursiveASTVisitor.h index 2014f07152..d751d556e9 100644 --- a/include/clang/AST/RecursiveASTVisitor.h +++ b/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/unittests/Tooling/RecursiveASTVisitorTest.cpp b/unittests/Tooling/RecursiveASTVisitorTest.cpp index 9d693095d7..9ef86b552c 100644 --- a/unittests/Tooling/RecursiveASTVisitorTest.cpp +++ b/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) { |