xref: /llvm-project/llvm/test/tools/llvm-symbolizer/sym-verbose.test (revision 1792852f86dc75efa1f44d46b1a0daf386d64afa)
1# static volatile int do_mul;
2# static volatile int x, v;
3#
4# int foo () {
5#   if (do_mul) x *= v; else x /= v;
6#   return x;
7# }
8#
9# int main() {
10#   return foo() + foo();
11# }
12# Build as : clang -gmlt -fdebug-info-for-profiling -O2 discrim.c -o discrim
13
14RUN: llvm-symbolizer --verbose --print-address --obj=%p/Inputs/discrim < %p/Inputs/discrim.inp | FileCheck %s
15
16CHECK: ??
17
18CHECK: 0x400590
19CHECK-NEXT: foo
20CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c
21CHECK-NEXT: Function start filename: /tmp{{[\\/]}}discrim.c
22CHECK-NEXT: Function start line: 4
23CHECK-NEXT: Function start address: 0x400590
24CHECK-NEXT: Line: 5
25CHECK-NEXT: Column: 7
26CHECK-NEXT: main
27CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c
28CHECK-NEXT: Function start filename: /tmp{{[\\/]}}discrim.c
29CHECK-NEXT: Function start line: 9
30CHECK-NEXT: Function start address: 0x400590
31CHECK-NEXT: Line: 10
32CHECK-NEXT: Column: 0
33
34CHECK: 0x4005a5
35CHECK-NEXT: foo
36CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c
37CHECK-NEXT: Function start filename: /tmp{{[\\/]}}discrim.c
38CHECK-NEXT: Function start line: 4
39CHECK-NEXT: Function start address: 0x400590
40CHECK-NEXT: Line: 5
41CHECK-NEXT: Column: 17
42CHECK-NEXT: Discriminator: 2
43CHECK-NEXT: main
44CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c
45CHECK-NEXT: Function start filename: /tmp{{[\\/]}}discrim.c
46CHECK-NEXT: Function start line: 9
47CHECK-NEXT: Function start address: 0x400590
48CHECK-NEXT: Line: 10
49CHECK-NEXT: Column: 0
50
51CHECK: 0x4005ad
52CHECK-NEXT: foo
53CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c
54CHECK-NEXT: Function start filename: /tmp{{[\\/]}}discrim.c
55CHECK-NEXT: Function start line: 4
56CHECK-NEXT: Function start address: 0x400590
57CHECK-NEXT: Line: 0
58CHECK-NEXT: Column: 30
59CHECK-NEXT: Discriminator: 4
60CHECK-NEXT: main
61CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c
62CHECK-NEXT: Function start filename: /tmp{{[\\/]}}discrim.c
63CHECK-NEXT: Function start line: 9
64CHECK-NEXT: Function start address: 0x400590
65CHECK-NEXT: Line: 10
66CHECK-NEXT: Column: 0
67
68CHECK: 0x4005b9
69CHECK-NEXT: foo
70CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c
71CHECK-NEXT: Function start filename: /tmp{{[\\/]}}discrim.c
72CHECK-NEXT: Function start line: 4
73CHECK-NEXT: Function start address: 0x4005b9
74CHECK-NEXT: Line: 5
75CHECK-NEXT: Column: 7
76CHECK-NEXT: main
77CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c
78CHECK-NEXT: Function start filename: /tmp{{[\\/]}}discrim.c
79CHECK-NEXT: Function start line: 9
80CHECK-NEXT: Function start address: 0x400590
81CHECK-NEXT: Line: 10
82CHECK-NEXT: Column: 0
83CHECK-NEXT: Discriminator: 2
84
85CHECK: 0x4005ce
86CHECK-NEXT: foo
87CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c
88CHECK-NEXT: Function start filename: /tmp{{[\\/]}}discrim.c
89CHECK-NEXT: Function start line: 4
90CHECK-NEXT: Function start address: 0x4005b9
91CHECK-NEXT: Line: 5
92CHECK-NEXT: Column: 17
93CHECK-NEXT: Discriminator: 2
94CHECK-NEXT: main
95CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c
96CHECK-NEXT: Function start filename: /tmp{{[\\/]}}discrim.c
97CHECK-NEXT: Function start line: 9
98CHECK-NEXT: Function start address: 0x400590
99CHECK-NEXT: Line: 10
100CHECK-NEXT: Column: 0
101CHECK-NEXT: Discriminator: 2
102
103CHECK: 0x4005d4
104CHECK-NEXT: foo
105CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c
106CHECK-NEXT: Function start filename: /tmp{{[\\/]}}discrim.c
107CHECK-NEXT: Function start line: 4
108CHECK-NEXT: Function start address: 0x4005b9
109CHECK-NEXT: Line: 5
110CHECK-NEXT: Column: 30
111CHECK-NEXT: Discriminator: 4
112CHECK-NEXT: main
113CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c
114CHECK-NEXT: Function start filename: /tmp{{[\\/]}}discrim.c
115CHECK-NEXT: Function start line: 9
116CHECK-NEXT: Function start address: 0x400590
117CHECK-NEXT: Line: 10
118CHECK-NEXT: Column: 0
119CHECK-NEXT: Discriminator: 2
120
121CHECK: ??
122