1 // RUN: %clang_cc1 -templight-dump %s 2>&1 | FileCheck %s
2 template<class T>
3 class A {};
4 
5 template <template <class Inner> class Outer>
6 class B {};
7 
8 // CHECK-LABEL: {{^---$}}
9 // CHECK: {{^name:[ ]+'B::Outer'$}}
10 // CHECK: {{^kind:[ ]+PriorTemplateArgumentSubstitution$}}
11 // CHECK: {{^event:[ ]+Begin$}}
12 // CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:5:40'}}
13 // CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:1'$}}
14 // CHECK-LABEL: {{^---$}}
15 // CHECK: {{^name:[ ]+'B::Outer'$}}
16 // CHECK: {{^kind:[ ]+PriorTemplateArgumentSubstitution$}}
17 // CHECK: {{^event:[ ]+End$}}
18 // CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:5:40'}}
19 // CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:1'$}}
20 //
21 // CHECK-LABEL: {{^---$}}
22 // CHECK: {{^name:[ ]+'B<A>'$}}
23 // CHECK: {{^kind:[ ]+TemplateInstantiation$}}
24 // CHECK: {{^event:[ ]+Begin$}}
25 // CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}}
26 // CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}}
27 // CHECK-LABEL: {{^---$}}
28 // CHECK: {{^name:[ ]+'B<A>'$}}
29 // CHECK: {{^kind:[ ]+TemplateInstantiation$}}
30 // CHECK: {{^event:[ ]+End$}}
31 // CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}}
32 // CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}}
33 //
34 // CHECK-LABEL: {{^---$}}
35 // CHECK: {{^name:[ ]+'B<A>'$}}
36 // CHECK: {{^kind:[ ]+TemplateInstantiation$}}
37 // CHECK: {{^event:[ ]+Begin$}}
38 // CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}}
39 // CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}}
40 // CHECK-LABEL: {{^---$}}
41 // CHECK: {{^name:[ ]+'B<A>'$}}
42 // CHECK: {{^kind:[ ]+TemplateInstantiation$}}
43 // CHECK: {{^event:[ ]+End$}}
44 // CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}}
45 // CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}}
46 //
47 // CHECK-LABEL: {{^---$}}
48 // CHECK: {{^name:[ ]+'B<A>'$}}
49 // CHECK: {{^kind:[ ]+Memoization$}}
50 // CHECK: {{^event:[ ]+Begin$}}
51 // CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}}
52 // CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}}
53 // CHECK-LABEL: {{^---$}}
54 // CHECK: {{^name:[ ]+'B<A>'$}}
55 // CHECK: {{^kind:[ ]+Memoization$}}
56 // CHECK: {{^event:[ ]+End$}}
57 // CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}}
58 // CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}}
59 //
60 // CHECK-LABEL: {{^---$}}
61 // CHECK: {{^name:[ ]+'B<A>'$}}
62 // CHECK: {{^kind:[ ]+Memoization$}}
63 // CHECK: {{^event:[ ]+Begin$}}
64 // CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}}
65 // CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}}
66 // CHECK-LABEL: {{^---$}}
67 // CHECK: {{^name:[ ]+'B<A>'$}}
68 // CHECK: {{^kind:[ ]+Memoization$}}
69 // CHECK: {{^event:[ ]+End$}}
70 // CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}}
71 // CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}}
72 B<A> b;
73