| // RUN: %clang_cc1 -templight-dump %s 2>&1 | FileCheck %s |
| |
| template <int N> |
| struct foo : foo<N - 1> {}; |
| |
| template <> |
| struct foo<0> {}; |
| |
| // CHECK-LABEL: {{^---$}} |
| // CHECK: {{^name:[ ]+'foo<2>'$}} |
| // CHECK: {{^kind:[ ]+TemplateInstantiation$}} |
| // CHECK: {{^event:[ ]+Begin$}} |
| // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} |
| // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:84:8'$}} |
| // CHECK-LABEL: {{^---$}} |
| // CHECK: {{^name:[ ]+'foo<2>'$}} |
| // CHECK: {{^kind:[ ]+TemplateInstantiation$}} |
| // CHECK: {{^event:[ ]+End$}} |
| // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} |
| // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:84:8'$}} |
| // CHECK-LABEL: {{^---$}} |
| // CHECK: {{^name:[ ]+'foo<2>'$}} |
| // CHECK: {{^kind:[ ]+TemplateInstantiation$}} |
| // CHECK: {{^event:[ ]+Begin$}} |
| // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} |
| // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:84:8'$}} |
| // |
| // CHECK-LABEL: {{^---$}} |
| // CHECK: {{^name:[ ]+'foo<1>'$}} |
| // CHECK: {{^kind:[ ]+TemplateInstantiation$}} |
| // CHECK: {{^event:[ ]+Begin$}} |
| // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} |
| // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} |
| // CHECK-LABEL: {{^---$}} |
| // CHECK: {{^name:[ ]+'foo<1>'$}} |
| // CHECK: {{^kind:[ ]+TemplateInstantiation$}} |
| // CHECK: {{^event:[ ]+End$}} |
| // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} |
| // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} |
| // CHECK-LABEL: {{^---$}} |
| // CHECK: {{^name:[ ]+'foo<1>'$}} |
| // CHECK: {{^kind:[ ]+TemplateInstantiation$}} |
| // CHECK: {{^event:[ ]+Begin$}} |
| // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} |
| // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} |
| // |
| // CHECK-LABEL: {{^---$}} |
| // CHECK: {{^name:[ ]+'foo<0>'$}} |
| // CHECK: {{^kind:[ ]+Memoization$}} |
| // CHECK: {{^event:[ ]+Begin$}} |
| // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:7:8'}} |
| // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} |
| // CHECK-LABEL: {{^---$}} |
| // CHECK: {{^name:[ ]+'foo<0>'$}} |
| // CHECK: {{^kind:[ ]+Memoization$}} |
| // CHECK: {{^event:[ ]+End$}} |
| // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:7:8'}} |
| // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} |
| // |
| // CHECK-LABEL: {{^---$}} |
| // CHECK: {{^name:[ ]+'foo<1>'$}} |
| // CHECK: {{^kind:[ ]+TemplateInstantiation$}} |
| // CHECK: {{^event:[ ]+End$}} |
| // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} |
| // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} |
| // CHECK-LABEL: {{^---$}} |
| // CHECK: {{^name:[ ]+'foo<1>'$}} |
| // CHECK: {{^kind:[ ]+Memoization$}} |
| // CHECK: {{^event:[ ]+Begin$}} |
| // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} |
| // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} |
| // CHECK-LABEL: {{^---$}} |
| // CHECK: {{^name:[ ]+'foo<1>'$}} |
| // CHECK: {{^kind:[ ]+Memoization$}} |
| // CHECK: {{^event:[ ]+End$}} |
| // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} |
| // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} |
| // CHECK-LABEL: {{^---$}} |
| // CHECK: {{^name:[ ]+'foo<2>'$}} |
| // CHECK: {{^kind:[ ]+TemplateInstantiation$}} |
| // CHECK: {{^event:[ ]+End$}} |
| // CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} |
| // CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:84:8'$}} |
| foo<2> x; |