diff options
author | Aleksei Sidorin <a.sidorin@samsung.com> | 2017-12-17 14:16:17 +0000 |
---|---|---|
committer | Aleksei Sidorin <a.sidorin@samsung.com> | 2017-12-17 14:16:17 +0000 |
commit | dec81835d1d41de5e812873227689d64c16c8e47 (patch) | |
tree | 48cf2ac77ada97b84803184fd5330b3256ebc482 /clang/unittests/AST/ASTImporterTest.cpp | |
parent | b1b30286bf3d636139b237bdf33013f9a12dd869 (diff) | |
download | bcm5719-llvm-dec81835d1d41de5e812873227689d64c16c8e47.tar.gz bcm5719-llvm-dec81835d1d41de5e812873227689d64c16c8e47.zip |
[ASTImporter] Support importing FunctionTemplateDecl and CXXDependentScopeMemberExpr
* Also introduces ImportTemplateArgumentListInfo facility (A. Sidorin)
Patch by Peter Szecsi!
Differential Revision: https://reviews.llvm.org/D38692
llvm-svn: 320942
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; |