Recommit "rL366894: [yaml2obj] - Allow custom fields for the SHT_UNDEF sections."
[llvm-complete.git] / test / tools / llvm-symbolizer / frame-types.s
blobf511c83bc0d25fc44a55ea222478ff1ba5d9a02a
1 // REQUIRES: x86-registered-target
3 // RUN: llvm-mc -filetype=obj -triple=i386-linux-gnu -o %t.o %s
4 // RUN: echo 'FRAME %t.o 0' | llvm-symbolizer | FileCheck %s
6 // CHECK: f
7 // CHECK-NEXT: a
8 // CHECK-NEXT: /tmp{{/|\\}}frame-types.cpp:4
9 // CHECK-NEXT: -1 1 ??
10 // CHECK-NEXT: f
11 // CHECK-NEXT: b
12 // CHECK-NEXT: /tmp{{/|\\}}frame-types.cpp:5
13 // CHECK-NEXT: -8 4 ??
14 // CHECK-NEXT: f
15 // CHECK-NEXT: c
16 // CHECK-NEXT: /tmp{{/|\\}}frame-types.cpp:6
17 // CHECK-NEXT: -12 4 ??
18 // CHECK-NEXT: f
19 // CHECK-NEXT: d
20 // CHECK-NEXT: /tmp{{/|\\}}frame-types.cpp:7
21 // CHECK-NEXT: -16 4 ??
22 // CHECK-NEXT: f
23 // CHECK-NEXT: e
24 // CHECK-NEXT: /tmp{{/|\\}}frame-types.cpp:8
25 // CHECK-NEXT: -32 8 ??
26 // CHECK-NEXT: f
27 // CHECK-NEXT: f
28 // CHECK-NEXT: /tmp{{/|\\}}frame-types.cpp:9
29 // CHECK-NEXT: -36 4 ??
30 // CHECK-NEXT: f
31 // CHECK-NEXT: g
32 // CHECK-NEXT: /tmp{{/|\\}}frame-types.cpp:10
33 // CHECK-NEXT: -37 1 ??
34 // CHECK-NEXT: f
35 // CHECK-NEXT: h
36 // CHECK-NEXT: /tmp{{/|\\}}frame-types.cpp:11
37 // CHECK-NEXT: -38 1 ??
38 // CHECK-NEXT: f
39 // CHECK-NEXT: i
40 // CHECK-NEXT: /tmp{{/|\\}}frame-types.cpp:12
41 // CHECK-NEXT: -44 4 ??
42 // CHECK-NEXT: f
43 // CHECK-NEXT: j
44 // CHECK-NEXT: /tmp{{/|\\}}frame-types.cpp:14
45 // CHECK-NEXT: -45 1 ??
46 // CHECK-NEXT: f
47 // CHECK-NEXT: k
48 // CHECK-NEXT: /tmp{{/|\\}}frame-types.cpp:15
49 // CHECK-NEXT: -57 12 ??
50 // CHECK-NEXT: f
51 // CHECK-NEXT: l
52 // CHECK-NEXT: /tmp{{/|\\}}frame-types.cpp:16
53 // CHECK-NEXT: -345 288 ??
55 // Generated from:
57 // struct S;
59 // void f() {
60 // char a;
61 // char *b;
62 // char &c = a;
63 // char &&d = 1;
64 // char (S::*e)();
65 // char S::*f;
66 // const char g = 2;
67 // volatile char h;
68 // char *__restrict i;
69 // typedef char char_typedef;
70 // char_typedef j;
71 // char k[12];
72 // char l[12][24];
73 // }
75 // clang++ --target=i386-linux-gnu frame-types.cpp -g -std=c++11 -S -o frame-types.s
77 .text
78 .file "frame-types.cpp"
79 .globl _Z1fv # -- Begin function _Z1fv
80 .p2align 4, 0x90
81 .type _Z1fv,@function
82 _Z1fv: # @_Z1fv
83 .Lfunc_begin0:
84 .file 1 "/tmp" "frame-types.cpp"
85 .loc 1 3 0 # frame-types.cpp:3:0
86 .cfi_sections .debug_frame
87 .cfi_startproc
88 # %bb.0: # %entry
89 pushl %ebp
90 .cfi_def_cfa_offset 8
91 .cfi_offset %ebp, -8
92 movl %esp, %ebp
93 .cfi_def_cfa_register %ebp
94 subl $352, %esp # imm = 0x160
95 .Ltmp0:
96 .loc 1 6 9 prologue_end # frame-types.cpp:6:9
97 leal -1(%ebp), %eax
98 .Ltmp1:
99 #DEBUG_VALUE: f:a <- [$eax+0]
100 movl %eax, -12(%ebp)
101 .loc 1 7 14 # frame-types.cpp:7:14
102 movb $1, -17(%ebp)
103 .loc 1 7 10 is_stmt 0 # frame-types.cpp:7:10
104 leal -17(%ebp), %eax
105 .Ltmp2:
106 movl %eax, -16(%ebp)
107 .loc 1 10 14 is_stmt 1 # frame-types.cpp:10:14
108 movb $2, -37(%ebp)
109 .loc 1 17 1 # frame-types.cpp:17:1
110 addl $352, %esp # imm = 0x160
111 popl %ebp
112 .cfi_def_cfa %esp, 4
113 retl
114 .Ltmp3:
115 .Lfunc_end0:
116 .size _Z1fv, .Lfunc_end0-_Z1fv
117 .cfi_endproc
118 # -- End function
119 .section .debug_str,"MS",@progbits,1
120 .Linfo_string0:
121 .asciz "clang version 9.0.0 " # string offset=0
122 .Linfo_string1:
123 .asciz "frame-types.cpp" # string offset=21
124 .Linfo_string2:
125 .asciz "/tmp" # string offset=37
126 .Linfo_string3:
127 .asciz "_Z1fv" # string offset=42
128 .Linfo_string4:
129 .asciz "f" # string offset=48
130 .Linfo_string5:
131 .asciz "a" # string offset=50
132 .Linfo_string6:
133 .asciz "char" # string offset=52
134 .Linfo_string7:
135 .asciz "b" # string offset=57
136 .Linfo_string8:
137 .asciz "c" # string offset=59
138 .Linfo_string9:
139 .asciz "d" # string offset=61
140 .Linfo_string10:
141 .asciz "e" # string offset=63
142 .Linfo_string11:
143 .asciz "S" # string offset=65
144 .Linfo_string12:
145 .asciz "g" # string offset=67
146 .Linfo_string13:
147 .asciz "h" # string offset=69
148 .Linfo_string14:
149 .asciz "i" # string offset=71
150 .Linfo_string15:
151 .asciz "j" # string offset=73
152 .Linfo_string16:
153 .asciz "char_typedef" # string offset=75
154 .Linfo_string17:
155 .asciz "k" # string offset=88
156 .Linfo_string18:
157 .asciz "__ARRAY_SIZE_TYPE__" # string offset=90
158 .Linfo_string19:
159 .asciz "l" # string offset=110
160 .section .debug_abbrev,"",@progbits
161 .byte 1 # Abbreviation Code
162 .byte 17 # DW_TAG_compile_unit
163 .byte 1 # DW_CHILDREN_yes
164 .byte 37 # DW_AT_producer
165 .byte 14 # DW_FORM_strp
166 .byte 19 # DW_AT_language
167 .byte 5 # DW_FORM_data2
168 .byte 3 # DW_AT_name
169 .byte 14 # DW_FORM_strp
170 .byte 16 # DW_AT_stmt_list
171 .byte 23 # DW_FORM_sec_offset
172 .byte 27 # DW_AT_comp_dir
173 .byte 14 # DW_FORM_strp
174 .byte 17 # DW_AT_low_pc
175 .byte 1 # DW_FORM_addr
176 .byte 18 # DW_AT_high_pc
177 .byte 6 # DW_FORM_data4
178 .byte 0 # EOM(1)
179 .byte 0 # EOM(2)
180 .byte 2 # Abbreviation Code
181 .byte 46 # DW_TAG_subprogram
182 .byte 1 # DW_CHILDREN_yes
183 .byte 17 # DW_AT_low_pc
184 .byte 1 # DW_FORM_addr
185 .byte 18 # DW_AT_high_pc
186 .byte 6 # DW_FORM_data4
187 .byte 64 # DW_AT_frame_base
188 .byte 24 # DW_FORM_exprloc
189 .byte 110 # DW_AT_linkage_name
190 .byte 14 # DW_FORM_strp
191 .byte 3 # DW_AT_name
192 .byte 14 # DW_FORM_strp
193 .byte 58 # DW_AT_decl_file
194 .byte 11 # DW_FORM_data1
195 .byte 59 # DW_AT_decl_line
196 .byte 11 # DW_FORM_data1
197 .byte 63 # DW_AT_external
198 .byte 25 # DW_FORM_flag_present
199 .byte 0 # EOM(1)
200 .byte 0 # EOM(2)
201 .byte 3 # Abbreviation Code
202 .byte 52 # DW_TAG_variable
203 .byte 0 # DW_CHILDREN_no
204 .byte 2 # DW_AT_location
205 .byte 24 # DW_FORM_exprloc
206 .byte 3 # DW_AT_name
207 .byte 14 # DW_FORM_strp
208 .byte 58 # DW_AT_decl_file
209 .byte 11 # DW_FORM_data1
210 .byte 59 # DW_AT_decl_line
211 .byte 11 # DW_FORM_data1
212 .byte 73 # DW_AT_type
213 .byte 19 # DW_FORM_ref4
214 .byte 0 # EOM(1)
215 .byte 0 # EOM(2)
216 .byte 4 # Abbreviation Code
217 .byte 22 # DW_TAG_typedef
218 .byte 0 # DW_CHILDREN_no
219 .byte 73 # DW_AT_type
220 .byte 19 # DW_FORM_ref4
221 .byte 3 # DW_AT_name
222 .byte 14 # DW_FORM_strp
223 .byte 58 # DW_AT_decl_file
224 .byte 11 # DW_FORM_data1
225 .byte 59 # DW_AT_decl_line
226 .byte 11 # DW_FORM_data1
227 .byte 0 # EOM(1)
228 .byte 0 # EOM(2)
229 .byte 5 # Abbreviation Code
230 .byte 36 # DW_TAG_base_type
231 .byte 0 # DW_CHILDREN_no
232 .byte 3 # DW_AT_name
233 .byte 14 # DW_FORM_strp
234 .byte 62 # DW_AT_encoding
235 .byte 11 # DW_FORM_data1
236 .byte 11 # DW_AT_byte_size
237 .byte 11 # DW_FORM_data1
238 .byte 0 # EOM(1)
239 .byte 0 # EOM(2)
240 .byte 6 # Abbreviation Code
241 .byte 15 # DW_TAG_pointer_type
242 .byte 0 # DW_CHILDREN_no
243 .byte 73 # DW_AT_type
244 .byte 19 # DW_FORM_ref4
245 .byte 0 # EOM(1)
246 .byte 0 # EOM(2)
247 .byte 7 # Abbreviation Code
248 .byte 16 # DW_TAG_reference_type
249 .byte 0 # DW_CHILDREN_no
250 .byte 73 # DW_AT_type
251 .byte 19 # DW_FORM_ref4
252 .byte 0 # EOM(1)
253 .byte 0 # EOM(2)
254 .byte 8 # Abbreviation Code
255 .byte 66 # DW_TAG_rvalue_reference_type
256 .byte 0 # DW_CHILDREN_no
257 .byte 73 # DW_AT_type
258 .byte 19 # DW_FORM_ref4
259 .byte 0 # EOM(1)
260 .byte 0 # EOM(2)
261 .byte 9 # Abbreviation Code
262 .byte 31 # DW_TAG_ptr_to_member_type
263 .byte 0 # DW_CHILDREN_no
264 .byte 73 # DW_AT_type
265 .byte 19 # DW_FORM_ref4
266 .byte 29 # DW_AT_containing_type
267 .byte 19 # DW_FORM_ref4
268 .byte 0 # EOM(1)
269 .byte 0 # EOM(2)
270 .byte 10 # Abbreviation Code
271 .byte 21 # DW_TAG_subroutine_type
272 .byte 1 # DW_CHILDREN_yes
273 .byte 73 # DW_AT_type
274 .byte 19 # DW_FORM_ref4
275 .byte 0 # EOM(1)
276 .byte 0 # EOM(2)
277 .byte 11 # Abbreviation Code
278 .byte 5 # DW_TAG_formal_parameter
279 .byte 0 # DW_CHILDREN_no
280 .byte 73 # DW_AT_type
281 .byte 19 # DW_FORM_ref4
282 .byte 52 # DW_AT_artificial
283 .byte 25 # DW_FORM_flag_present
284 .byte 0 # EOM(1)
285 .byte 0 # EOM(2)
286 .byte 12 # Abbreviation Code
287 .byte 19 # DW_TAG_structure_type
288 .byte 0 # DW_CHILDREN_no
289 .byte 3 # DW_AT_name
290 .byte 14 # DW_FORM_strp
291 .byte 60 # DW_AT_declaration
292 .byte 25 # DW_FORM_flag_present
293 .byte 0 # EOM(1)
294 .byte 0 # EOM(2)
295 .byte 13 # Abbreviation Code
296 .byte 38 # DW_TAG_const_type
297 .byte 0 # DW_CHILDREN_no
298 .byte 73 # DW_AT_type
299 .byte 19 # DW_FORM_ref4
300 .byte 0 # EOM(1)
301 .byte 0 # EOM(2)
302 .byte 14 # Abbreviation Code
303 .byte 53 # DW_TAG_volatile_type
304 .byte 0 # DW_CHILDREN_no
305 .byte 73 # DW_AT_type
306 .byte 19 # DW_FORM_ref4
307 .byte 0 # EOM(1)
308 .byte 0 # EOM(2)
309 .byte 15 # Abbreviation Code
310 .byte 55 # DW_TAG_restrict_type
311 .byte 0 # DW_CHILDREN_no
312 .byte 73 # DW_AT_type
313 .byte 19 # DW_FORM_ref4
314 .byte 0 # EOM(1)
315 .byte 0 # EOM(2)
316 .byte 16 # Abbreviation Code
317 .byte 1 # DW_TAG_array_type
318 .byte 1 # DW_CHILDREN_yes
319 .byte 73 # DW_AT_type
320 .byte 19 # DW_FORM_ref4
321 .byte 0 # EOM(1)
322 .byte 0 # EOM(2)
323 .byte 17 # Abbreviation Code
324 .byte 33 # DW_TAG_subrange_type
325 .byte 0 # DW_CHILDREN_no
326 .byte 73 # DW_AT_type
327 .byte 19 # DW_FORM_ref4
328 .byte 55 # DW_AT_count
329 .byte 11 # DW_FORM_data1
330 .byte 0 # EOM(1)
331 .byte 0 # EOM(2)
332 .byte 18 # Abbreviation Code
333 .byte 36 # DW_TAG_base_type
334 .byte 0 # DW_CHILDREN_no
335 .byte 3 # DW_AT_name
336 .byte 14 # DW_FORM_strp
337 .byte 11 # DW_AT_byte_size
338 .byte 11 # DW_FORM_data1
339 .byte 62 # DW_AT_encoding
340 .byte 11 # DW_FORM_data1
341 .byte 0 # EOM(1)
342 .byte 0 # EOM(2)
343 .byte 0 # EOM(3)
344 .section .debug_info,"",@progbits
345 .Lcu_begin0:
346 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
347 .Ldebug_info_start0:
348 .short 4 # DWARF version number
349 .long .debug_abbrev # Offset Into Abbrev. Section
350 .byte 4 # Address Size (in bytes)
351 .byte 1 # Abbrev [1] 0xb:0x157 DW_TAG_compile_unit
352 .long .Linfo_string0 # DW_AT_producer
353 .short 4 # DW_AT_language
354 .long .Linfo_string1 # DW_AT_name
355 .long .Lline_table_start0 # DW_AT_stmt_list
356 .long .Linfo_string2 # DW_AT_comp_dir
357 .long .Lfunc_begin0 # DW_AT_low_pc
358 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
359 .byte 2 # Abbrev [2] 0x26:0xca DW_TAG_subprogram
360 .long .Lfunc_begin0 # DW_AT_low_pc
361 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
362 .byte 1 # DW_AT_frame_base
363 .byte 85
364 .long .Linfo_string3 # DW_AT_linkage_name
365 .long .Linfo_string4 # DW_AT_name
366 .byte 1 # DW_AT_decl_file
367 .byte 3 # DW_AT_decl_line
368 # DW_AT_external
369 .byte 3 # Abbrev [3] 0x3b:0xe DW_TAG_variable
370 .byte 2 # DW_AT_location
371 .byte 145
372 .byte 127
373 .long .Linfo_string5 # DW_AT_name
374 .byte 1 # DW_AT_decl_file
375 .byte 4 # DW_AT_decl_line
376 .long 240 # DW_AT_type
377 .byte 3 # Abbrev [3] 0x49:0xe DW_TAG_variable
378 .byte 2 # DW_AT_location
379 .byte 145
380 .byte 120
381 .long .Linfo_string7 # DW_AT_name
382 .byte 1 # DW_AT_decl_file
383 .byte 5 # DW_AT_decl_line
384 .long 247 # DW_AT_type
385 .byte 3 # Abbrev [3] 0x57:0xe DW_TAG_variable
386 .byte 2 # DW_AT_location
387 .byte 145
388 .byte 116
389 .long .Linfo_string8 # DW_AT_name
390 .byte 1 # DW_AT_decl_file
391 .byte 6 # DW_AT_decl_line
392 .long 252 # DW_AT_type
393 .byte 3 # Abbrev [3] 0x65:0xe DW_TAG_variable
394 .byte 2 # DW_AT_location
395 .byte 145
396 .byte 112
397 .long .Linfo_string9 # DW_AT_name
398 .byte 1 # DW_AT_decl_file
399 .byte 7 # DW_AT_decl_line
400 .long 257 # DW_AT_type
401 .byte 3 # Abbrev [3] 0x73:0xe DW_TAG_variable
402 .byte 2 # DW_AT_location
403 .byte 145
404 .byte 96
405 .long .Linfo_string10 # DW_AT_name
406 .byte 1 # DW_AT_decl_file
407 .byte 8 # DW_AT_decl_line
408 .long 262 # DW_AT_type
409 .byte 3 # Abbrev [3] 0x81:0xe DW_TAG_variable
410 .byte 2 # DW_AT_location
411 .byte 145
412 .byte 92
413 .long .Linfo_string4 # DW_AT_name
414 .byte 1 # DW_AT_decl_file
415 .byte 9 # DW_AT_decl_line
416 .long 292 # DW_AT_type
417 .byte 3 # Abbrev [3] 0x8f:0xe DW_TAG_variable
418 .byte 2 # DW_AT_location
419 .byte 145
420 .byte 91
421 .long .Linfo_string12 # DW_AT_name
422 .byte 1 # DW_AT_decl_file
423 .byte 10 # DW_AT_decl_line
424 .long 301 # DW_AT_type
425 .byte 3 # Abbrev [3] 0x9d:0xe DW_TAG_variable
426 .byte 2 # DW_AT_location
427 .byte 145
428 .byte 90
429 .long .Linfo_string13 # DW_AT_name
430 .byte 1 # DW_AT_decl_file
431 .byte 11 # DW_AT_decl_line
432 .long 306 # DW_AT_type
433 .byte 3 # Abbrev [3] 0xab:0xe DW_TAG_variable
434 .byte 2 # DW_AT_location
435 .byte 145
436 .byte 84
437 .long .Linfo_string14 # DW_AT_name
438 .byte 1 # DW_AT_decl_file
439 .byte 12 # DW_AT_decl_line
440 .long 311 # DW_AT_type
441 .byte 3 # Abbrev [3] 0xb9:0xe DW_TAG_variable
442 .byte 2 # DW_AT_location
443 .byte 145
444 .byte 83
445 .long .Linfo_string15 # DW_AT_name
446 .byte 1 # DW_AT_decl_file
447 .byte 14 # DW_AT_decl_line
448 .long 228 # DW_AT_type
449 .byte 3 # Abbrev [3] 0xc7:0xe DW_TAG_variable
450 .byte 2 # DW_AT_location
451 .byte 145
452 .byte 71
453 .long .Linfo_string17 # DW_AT_name
454 .byte 1 # DW_AT_decl_file
455 .byte 15 # DW_AT_decl_line
456 .long 316 # DW_AT_type
457 .byte 3 # Abbrev [3] 0xd5:0xf DW_TAG_variable
458 .byte 3 # DW_AT_location
459 .byte 145
460 .ascii "\247}"
461 .long .Linfo_string19 # DW_AT_name
462 .byte 1 # DW_AT_decl_file
463 .byte 16 # DW_AT_decl_line
464 .long 335 # DW_AT_type
465 .byte 4 # Abbrev [4] 0xe4:0xb DW_TAG_typedef
466 .long 240 # DW_AT_type
467 .long .Linfo_string16 # DW_AT_name
468 .byte 1 # DW_AT_decl_file
469 .byte 13 # DW_AT_decl_line
470 .byte 0 # End Of Children Mark
471 .byte 5 # Abbrev [5] 0xf0:0x7 DW_TAG_base_type
472 .long .Linfo_string6 # DW_AT_name
473 .byte 6 # DW_AT_encoding
474 .byte 1 # DW_AT_byte_size
475 .byte 6 # Abbrev [6] 0xf7:0x5 DW_TAG_pointer_type
476 .long 240 # DW_AT_type
477 .byte 7 # Abbrev [7] 0xfc:0x5 DW_TAG_reference_type
478 .long 240 # DW_AT_type
479 .byte 8 # Abbrev [8] 0x101:0x5 DW_TAG_rvalue_reference_type
480 .long 240 # DW_AT_type
481 .byte 9 # Abbrev [9] 0x106:0x9 DW_TAG_ptr_to_member_type
482 .long 271 # DW_AT_type
483 .long 287 # DW_AT_containing_type
484 .byte 10 # Abbrev [10] 0x10f:0xb DW_TAG_subroutine_type
485 .long 240 # DW_AT_type
486 .byte 11 # Abbrev [11] 0x114:0x5 DW_TAG_formal_parameter
487 .long 282 # DW_AT_type
488 # DW_AT_artificial
489 .byte 0 # End Of Children Mark
490 .byte 6 # Abbrev [6] 0x11a:0x5 DW_TAG_pointer_type
491 .long 287 # DW_AT_type
492 .byte 12 # Abbrev [12] 0x11f:0x5 DW_TAG_structure_type
493 .long .Linfo_string11 # DW_AT_name
494 # DW_AT_declaration
495 .byte 9 # Abbrev [9] 0x124:0x9 DW_TAG_ptr_to_member_type
496 .long 240 # DW_AT_type
497 .long 287 # DW_AT_containing_type
498 .byte 13 # Abbrev [13] 0x12d:0x5 DW_TAG_const_type
499 .long 240 # DW_AT_type
500 .byte 14 # Abbrev [14] 0x132:0x5 DW_TAG_volatile_type
501 .long 240 # DW_AT_type
502 .byte 15 # Abbrev [15] 0x137:0x5 DW_TAG_restrict_type
503 .long 247 # DW_AT_type
504 .byte 16 # Abbrev [16] 0x13c:0xc DW_TAG_array_type
505 .long 240 # DW_AT_type
506 .byte 17 # Abbrev [17] 0x141:0x6 DW_TAG_subrange_type
507 .long 328 # DW_AT_type
508 .byte 12 # DW_AT_count
509 .byte 0 # End Of Children Mark
510 .byte 18 # Abbrev [18] 0x148:0x7 DW_TAG_base_type
511 .long .Linfo_string18 # DW_AT_name
512 .byte 8 # DW_AT_byte_size
513 .byte 7 # DW_AT_encoding
514 .byte 16 # Abbrev [16] 0x14f:0x12 DW_TAG_array_type
515 .long 240 # DW_AT_type
516 .byte 17 # Abbrev [17] 0x154:0x6 DW_TAG_subrange_type
517 .long 328 # DW_AT_type
518 .byte 12 # DW_AT_count
519 .byte 17 # Abbrev [17] 0x15a:0x6 DW_TAG_subrange_type
520 .long 328 # DW_AT_type
521 .byte 24 # DW_AT_count
522 .byte 0 # End Of Children Mark
523 .byte 0 # End Of Children Mark
524 .Ldebug_info_end0:
525 .section .debug_macinfo,"",@progbits
526 .byte 0 # End Of Macro List Mark
528 .ident "clang version 9.0.0 "
529 .section ".note.GNU-stack","",@progbits
530 .addrsig
531 .section .debug_line,"",@progbits
532 .Lline_table_start0: