diff options
author | Stephen Kelly <steveire@gmail.com> | 2018-12-05 20:21:13 +0000 |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2018-12-05 20:21:13 +0000 |
commit | f3c8e47ee46fbb76329dd6609c5076a70719d4fc (patch) | |
tree | fcdf1a447b5cf188164204a4fe7058ae3d658e0d /test/AST | |
parent | df27442946fd46259313c0a840ab5a3afa43a487 (diff) | |
download | clang-f3c8e47ee46fbb76329dd6609c5076a70719d4fc.tar.gz |
Add dump tests for inherited default template parameters
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@348408 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/AST')
-rw-r--r-- | test/AST/ast-dump-decl.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/AST/ast-dump-decl.cpp b/test/AST/ast-dump-decl.cpp index adab91291e..7f3859c5a9 100644 --- a/test/AST/ast-dump-decl.cpp +++ b/test/AST/ast-dump-decl.cpp @@ -263,6 +263,15 @@ namespace testClassTemplateDecl { template<typename T1> class TestClassTemplatePartial<T1, A> {
int j;
};
+
+ template<typename T = int> struct TestTemplateDefaultType;
+ template<typename T> struct TestTemplateDefaultType { };
+
+ template<int I = 42> struct TestTemplateDefaultNonType;
+ template<int I> struct TestTemplateDefaultNonType { };
+
+ template<template<typename> class TT = TestClassTemplate> struct TestTemplateTemplateDefaultType;
+ template<template<typename> class TT> struct TestTemplateTemplateDefaultType { };
}
// CHECK: ClassTemplateDecl{{.*}} TestClassTemplate
// CHECK-NEXT: TemplateTypeParmDecl
@@ -316,6 +325,24 @@ namespace testClassTemplateDecl { // CHECK-NEXT: CXXRecordDecl{{.*}} class TestClassTemplatePartial
// CHECK-NEXT: FieldDecl{{.*}} j
+// CHECK: ClassTemplateDecl 0x{{[^ ]*}} prev 0x{{[^ ]*}} {{.*}} TestTemplateDefaultType
+// CHECK-NEXT: TemplateTypeParmDecl
+// CHECK-NEXT: TemplateArgument type 'int'
+// CHECK-NEXT: inherited from TemplateTypeParm 0x{{[^ ]*}} 'T'
+
+// CHECK: ClassTemplateDecl 0x{{[^ ]*}} prev 0x{{[^ ]*}} {{.*}} TestTemplateDefaultNonType
+// CHECK-NEXT: NonTypeTemplateParmDecl
+// CHECK-NEXT: TemplateArgument expr
+// CHECK-NEXT: ConstantExpr
+// CHECK-NEXT: IntegerLiteral
+// CHECK-NEXT: inherited from NonTypeTemplateParm 0x{{[^ ]*}} 'I' 'int'
+
+// CHECK: ClassTemplateDecl 0x{{[^ ]*}} prev 0x{{[^ ]*}} {{.*}} TestTemplateTemplateDefaultType
+// CHECK-NEXT: TemplateTemplateParmDecl
+// CHECK-NEXT: TemplateTypeParmDecl
+// CHECK-NEXT: TemplateArgument
+// CHECK-NEXT: inherited from TemplateTemplateParm 0x{{[^ ]*}} 'TT'
+
// PR15220 dump instantiation only once
namespace testCanonicalTemplate {
class A {};
|