summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2015-12-02 13:57:46 +0000
committerDaniel Jasper <djasper@google.com>2015-12-02 13:57:46 +0000
commitc8f472c3a69b223ad52f7de41b517edd98c6a511 (patch)
tree631e905e896762c80b2240f845e210d8f52d70c3
parentabd2a0bf0df18f20d0c55fbde5822a3c9f1445d8 (diff)
downloadbcm5719-llvm-c8f472c3a69b223ad52f7de41b517edd98c6a511.tar.gz
bcm5719-llvm-c8f472c3a69b223ad52f7de41b517edd98c6a511.zip
Traverse the NestedNameSpecifier(Loc) of NamespaceAliasDecls.
Review: http://reviews.llvm.org/D15149 llvm-svn: 254510
-rw-r--r--clang/include/clang/AST/RecursiveASTVisitor.h2
-rw-r--r--clang/unittests/ASTMatchers/ASTMatchersTest.cpp2
2 files changed, 4 insertions, 0 deletions
diff --git a/clang/include/clang/AST/RecursiveASTVisitor.h b/clang/include/clang/AST/RecursiveASTVisitor.h
index 15d96fb4e96..72fe26f4fdd 100644
--- a/clang/include/clang/AST/RecursiveASTVisitor.h
+++ b/clang/include/clang/AST/RecursiveASTVisitor.h
@@ -1324,6 +1324,8 @@ DEF_TRAVERSE_DECL(
DEF_TRAVERSE_DECL(ExternCContextDecl, {})
DEF_TRAVERSE_DECL(NamespaceAliasDecl, {
+ TRY_TO(TraverseNestedNameSpecifierLoc(D->getQualifierLoc()));
+
// We shouldn't traverse an aliased namespace, since it will be
// defined (and, therefore, traversed) somewhere else.
//
diff --git a/clang/unittests/ASTMatchers/ASTMatchersTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersTest.cpp
index 90da356c323..51233e91303 100644
--- a/clang/unittests/ASTMatchers/ASTMatchersTest.cpp
+++ b/clang/unittests/ASTMatchers/ASTMatchersTest.cpp
@@ -4487,6 +4487,8 @@ TEST(NNS, MatchesNestedNameSpecifiers) {
nestedNameSpecifier()));
EXPECT_TRUE(matches("struct A { void f(); }; void A::f() {}",
nestedNameSpecifier()));
+ EXPECT_TRUE(matches("namespace a { namespace b {} } namespace ab = a::b;",
+ nestedNameSpecifier()));
EXPECT_TRUE(matches(
"struct A { static void f() {} }; void g() { A::f(); }",
OpenPOWER on IntegriCloud