Clang Project

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