summaryrefslogtreecommitdiff
path: root/test/AST
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2018-12-05 20:21:13 +0000
committerStephen Kelly <steveire@gmail.com>2018-12-05 20:21:13 +0000
commitf3c8e47ee46fbb76329dd6609c5076a70719d4fc (patch)
treefcdf1a447b5cf188164204a4fe7058ae3d658e0d /test/AST
parentdf27442946fd46259313c0a840ab5a3afa43a487 (diff)
downloadclang-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.cpp27
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 {};