[PATCH] D16413: Let RecursiveASTVisitor visit array index VarDecls
Nico Weber via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 21 09:54:57 PST 2016
thakis updated this revision to Diff 45551.
thakis added a comment.
fix test name
http://reviews.llvm.org/D16413
Files:
include/clang/AST/RecursiveASTVisitor.h
unittests/ASTMatchers/ASTMatchersTest.cpp
Index: include/clang/AST/RecursiveASTVisitor.h
===================================================================
--- include/clang/AST/RecursiveASTVisitor.h
+++ include/clang/AST/RecursiveASTVisitor.h
@@ -809,6 +809,10 @@
if (Init->isWritten() || getDerived().shouldVisitImplicitCode())
TRY_TO(TraverseStmt(Init->getInit()));
+
+ if (Init->getNumArrayIndices() && getDerived().shouldVisitImplicitCode())
+ for (VarDecl *VD : Init->getArrayIndexes())
+ TRY_TO(TraverseDecl(VD));
return true;
}
Index: unittests/ASTMatchers/ASTMatchersTest.cpp
===================================================================
--- unittests/ASTMatchers/ASTMatchersTest.cpp
+++ unittests/ASTMatchers/ASTMatchersTest.cpp
@@ -4207,6 +4207,14 @@
hasAncestor(cxxRecordDecl(unless(isTemplateInstantiation())))))));
}
+TEST(HasAncestor, ImplicitArrayCopyCtorDeclRefExpr) {
+ EXPECT_TRUE(matches("struct MyClass {\n"
+ " int c[1];\n"
+ " static MyClass Create() { return MyClass(); }\n"
+ "};",
+ declRefExpr(to(decl(hasAncestor(decl()))))));
+}
+
TEST(HasParent, MatchesAllParents) {
EXPECT_TRUE(matches(
"template <typename T> struct C { static void f() { 42; } };"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D16413.45551.patch
Type: text/x-patch
Size: 1286 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160121/05f6186a/attachment.bin>
More information about the cfe-commits
mailing list