From aae4b36509924a58e6f9d8aefd0b041dcf6f66ac Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Wed, 2 Dec 2015 13:57:46 +0000 Subject: [PATCH] Traverse the NestedNameSpecifier(Loc) of NamespaceAliasDecls. Review: http://reviews.llvm.org/D15149 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@254510 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/AST/RecursiveASTVisitor.h | 2 ++ unittests/ASTMatchers/ASTMatchersTest.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/include/clang/AST/RecursiveASTVisitor.h b/include/clang/AST/RecursiveASTVisitor.h index 15d96fb4e9..72fe26f4fd 100644 --- a/include/clang/AST/RecursiveASTVisitor.h +++ b/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/unittests/ASTMatchers/ASTMatchersTest.cpp b/unittests/ASTMatchers/ASTMatchersTest.cpp index 90da356c32..51233e9130 100644 --- a/unittests/ASTMatchers/ASTMatchersTest.cpp +++ b/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(); }", -- 2.40.0