forked from OSchip/llvm-project
85 lines
3.5 KiB
C++
85 lines
3.5 KiB
C++
|
// 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;
|