]> granicus.if.org Git - clang/commitdiff
Add dump tests for inherited default template parameters
authorStephen Kelly <steveire@gmail.com>
Wed, 5 Dec 2018 20:21:13 +0000 (20:21 +0000)
committerStephen Kelly <steveire@gmail.com>
Wed, 5 Dec 2018 20:21:13 +0000 (20:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@348408 91177308-0d34-0410-b5e6-96231b3b80d8

test/AST/ast-dump-decl.cpp

index adab91291e3a8488b69a3826a2d8bb2916ab7e1c..7f3859c5a9bfd709e7f3cc0f0ed310dd83d3e5e2 100644 (file)
@@ -263,6 +263,15 @@ namespace testClassTemplateDecl {
   template<typename T1> class TestClassTemplatePartial<T1, A> {\r
     int j;\r
   };\r
+\r
+  template<typename T = int> struct TestTemplateDefaultType;\r
+  template<typename T> struct TestTemplateDefaultType { };\r
+\r
+  template<int I = 42> struct TestTemplateDefaultNonType;\r
+  template<int I> struct TestTemplateDefaultNonType { };\r
+\r
+  template<template<typename> class TT = TestClassTemplate> struct TestTemplateTemplateDefaultType;\r
+  template<template<typename> class TT> struct TestTemplateTemplateDefaultType { };\r
 }\r
 // CHECK:      ClassTemplateDecl{{.*}} TestClassTemplate\r
 // CHECK-NEXT:   TemplateTypeParmDecl\r
@@ -316,6 +325,24 @@ namespace testClassTemplateDecl {
 // CHECK-NEXT:   CXXRecordDecl{{.*}} class TestClassTemplatePartial\r
 // CHECK-NEXT:   FieldDecl{{.*}} j\r
 \r
+// CHECK:      ClassTemplateDecl 0x{{[^ ]*}} prev 0x{{[^ ]*}} {{.*}} TestTemplateDefaultType\r
+// CHECK-NEXT:   TemplateTypeParmDecl\r
+// CHECK-NEXT:     TemplateArgument type 'int'\r
+// CHECK-NEXT:     inherited from TemplateTypeParm 0x{{[^ ]*}} 'T'\r
+\r
+// CHECK:      ClassTemplateDecl 0x{{[^ ]*}} prev 0x{{[^ ]*}} {{.*}} TestTemplateDefaultNonType\r
+// CHECK-NEXT:   NonTypeTemplateParmDecl\r
+// CHECK-NEXT:     TemplateArgument expr\r
+// CHECK-NEXT:       ConstantExpr\r
+// CHECK-NEXT:         IntegerLiteral\r
+// CHECK-NEXT:     inherited from NonTypeTemplateParm 0x{{[^ ]*}} 'I' 'int'\r
+\r
+// CHECK:      ClassTemplateDecl 0x{{[^ ]*}} prev 0x{{[^ ]*}} {{.*}} TestTemplateTemplateDefaultType\r
+// CHECK-NEXT:   TemplateTemplateParmDecl\r
+// CHECK-NEXT:     TemplateTypeParmDecl\r
+// CHECK-NEXT:     TemplateArgument\r
+// CHECK-NEXT:     inherited from TemplateTemplateParm 0x{{[^ ]*}} 'TT'\r
+\r
 // PR15220 dump instantiation only once\r
 namespace testCanonicalTemplate {\r
   class A {};\r