Clang Project

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