diff options
author | Gabor Marton <martongabesz@gmail.com> | 2018-05-18 09:08:47 +0000 |
---|---|---|
committer | Gabor Marton <martongabesz@gmail.com> | 2018-05-18 09:08:47 +0000 |
commit | 61d862a9567a874497a103578a4e13deab1727a1 (patch) | |
tree | e95d7368b01cacbef354c46a9661bd84eb7683f9 /clang/unittests/AST/ASTImporterTest.cpp | |
parent | 0af67e5b651b49220af5101f1592bd9a2e314c0e (diff) | |
download | bcm5719-llvm-61d862a9567a874497a103578a4e13deab1727a1.tar.gz bcm5719-llvm-61d862a9567a874497a103578a4e13deab1727a1.zip |
Do not try to remove invisible Decls from DeclContext
llvm-svn: 332699
Diffstat (limited to 'clang/unittests/AST/ASTImporterTest.cpp')
-rw-r--r-- | clang/unittests/AST/ASTImporterTest.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/clang/unittests/AST/ASTImporterTest.cpp b/clang/unittests/AST/ASTImporterTest.cpp index a4c823008d9..02020e6fa23 100644 --- a/clang/unittests/AST/ASTImporterTest.cpp +++ b/clang/unittests/AST/ASTImporterTest.cpp @@ -1797,5 +1797,38 @@ TEST(ImportExpr, UnresolvedMemberExpr) { compoundStmt(has(callExpr(has(unresolvedMemberExpr()))))))))); } +struct DeclContextTest : ASTImporterTestBase {}; + +TEST_P(DeclContextTest, removeDeclOfClassTemplateSpecialization) { + Decl *TU = getTuDecl( + R"( + namespace NS { + + template <typename T> + struct S {}; + template struct S<int>; + + inline namespace INS { + template <typename T> + struct S {}; + template struct S<int>; + } + + } + )", Lang_CXX11, "input0.cc"); + auto *NS = FirstDeclMatcher<NamespaceDecl>().match( + TU, namespaceDecl()); + auto *Spec = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match( + TU, classTemplateSpecializationDecl()); + ASSERT_TRUE(NS->containsDecl(Spec)); + + NS->removeDecl(Spec); + EXPECT_FALSE(NS->containsDecl(Spec)); +} + +INSTANTIATE_TEST_CASE_P( + ParameterizedTests, DeclContextTest, + ::testing::Values(ArgVector(), ArgVector{"-fdelayed-template-parsing"}),); + } // end namespace ast_matchers } // end namespace clang |