diff options
Diffstat (limited to 'clang/unittests/AST/ASTImporterTest.cpp')
-rw-r--r-- | clang/unittests/AST/ASTImporterTest.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/clang/unittests/AST/ASTImporterTest.cpp b/clang/unittests/AST/ASTImporterTest.cpp index 64dd4fc9536..099d5412a7d 100644 --- a/clang/unittests/AST/ASTImporterTest.cpp +++ b/clang/unittests/AST/ASTImporterTest.cpp @@ -504,6 +504,35 @@ TEST(ImportType, ImportTypeAliasTemplate) { declRefExpr())))))))))); } +TEST(ImportDecl, ImportFunctionTemplateDecl) { + MatchVerifier<Decl> Verifier; + EXPECT_TRUE(testImport("template <typename T> void declToImport() { };", + Lang_CXX, "", Lang_CXX, Verifier, + functionTemplateDecl())); +} + +const internal::VariadicDynCastAllOfMatcher<Expr, CXXDependentScopeMemberExpr> + cxxDependentScopeMemberExpr; + +TEST(ImportExpr, ImportCXXDependentScopeMemberExpr) { + MatchVerifier<Decl> Verifier; + EXPECT_TRUE(testImport("template <typename T> class C { T t; };" + "template <typename T> void declToImport() {" + " C<T> d;" + " d.t;" + "}", + Lang_CXX, "", Lang_CXX, Verifier, + functionTemplateDecl(has(functionDecl(has(compoundStmt( + has(cxxDependentScopeMemberExpr())))))))); + EXPECT_TRUE(testImport("template <typename T> class C { T t; };" + "template <typename T> void declToImport() {" + " C<T> d;" + " (&d)->t;" + "}", + Lang_CXX, "", Lang_CXX, Verifier, + functionTemplateDecl(has(functionDecl(has(compoundStmt( + has(cxxDependentScopeMemberExpr())))))))); +} TEST(ImportType, ImportPackExpansion) { MatchVerifier<Decl> Verifier; |