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
8 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:11
12 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:12
13 // CHECK-NEXT
: -12 4 ??
16 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:13
17 // CHECK-NEXT
: -16 4 ??
20 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:14
21 // CHECK-NEXT
: -20 4 ??
24 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:15
25 // CHECK-NEXT
: -32 8 ??
28 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:16
29 // CHECK-NEXT
: -36 4 ??
32 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:17
33 // CHECK-NEXT
: -37 1 ??
36 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:18
37 // CHECK-NEXT
: -38 1 ??
40 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:19
41 // CHECK-NEXT
: -44 4 ??
44 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:21
45 // CHECK-NEXT
: -45 1 ??
48 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:22
49 // CHECK-NEXT
: -57 12 ??
52 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:23
53 // CHECK-NEXT
: -345 288 ??
56 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:24
57 // CHECK-NEXT
: -352 4 ??
72 // char
*__restrict i;
73 // typedef char char_typedef;
79 // clang+
+ --target
=i386-linux-gnu frame-types.cpp
-g
-std=c+
+11 -S
-o frame-types.s
82 .file "frame-types.cpp"
83 .globl _Z1fv # -- Begin function _Z1fv
88 .file 0 "/tmp" "frame-types.cpp"
89 .loc 0 10 0 # frame-types.cpp:10:0
96 .cfi_def_cfa_register %ebp
99 subl $
372, %esp
# imm = 0x174
100 .cfi_offset %ebx, -12
101 .loc 0 13 9 prologue_end # frame-types.cpp:13:9
106 addl $_GLOBAL_OFFSET_TABLE_+
(.Ltmp1-.L0$pb), %ebx
109 .loc 0 14 14 # frame-types.cpp:14:14
111 .loc 0 14 10 is_stmt 0 # frame-types.cpp:14:10
114 .loc 0 17 14 is_stmt 1 # frame-types.cpp:17:14
116 .loc 0 24 14 # frame-types.cpp:24:14
117 leal
-352(%ebp
), %eax
123 .loc 0 25 1 epilogue_begin # frame-types.cpp:25:1
124 addl $
372, %esp
# imm = 0x174
131 .size _Z1fv, .Lfunc_end0-_Z1fv
134 .section .debug_abbrev,"",@progbits
135 .byte 1 # Abbreviation Code
136 .byte 17 # DW_TAG_compile_unit
137 .byte 1 # DW_CHILDREN_yes
138 .byte 37 # DW_AT_producer
139 .byte 37 # DW_FORM_strx1
140 .byte 19 # DW_AT_language
141 .byte 5 # DW_FORM_data2
143 .byte 37 # DW_FORM_strx1
144 .byte 114 # DW_AT_str_offsets_base
145 .byte 23 # DW_FORM_sec_offset
146 .byte 16 # DW_AT_stmt_list
147 .byte 23 # DW_FORM_sec_offset
148 .byte 27 # DW_AT_comp_dir
149 .byte 37 # DW_FORM_strx1
150 .byte 17 # DW_AT_low_pc
151 .byte 27 # DW_FORM_addrx
152 .byte 18 # DW_AT_high_pc
153 .byte 6 # DW_FORM_data4
154 .byte 115 # DW_AT_addr_base
155 .byte 23 # DW_FORM_sec_offset
158 .byte 2 # Abbreviation Code
159 .byte 46 # DW_TAG_subprogram
160 .byte 1 # DW_CHILDREN_yes
161 .byte 17 # DW_AT_low_pc
162 .byte 27 # DW_FORM_addrx
163 .byte 18 # DW_AT_high_pc
164 .byte 6 # DW_FORM_data4
165 .byte 64 # DW_AT_frame_base
166 .byte 24 # DW_FORM_exprloc
167 .byte 110 # DW_AT_linkage_name
168 .byte 37 # DW_FORM_strx1
170 .byte 37 # DW_FORM_strx1
171 .byte 58 # DW_AT_decl_file
172 .byte 11 # DW_FORM_data1
173 .byte 59 # DW_AT_decl_line
174 .byte 11 # DW_FORM_data1
175 .byte 63 # DW_AT_external
176 .byte 25 # DW_FORM_flag_present
179 .byte 3 # Abbreviation Code
180 .byte 52 # DW_TAG_variable
181 .byte 0 # DW_CHILDREN_no
182 .byte 2 # DW_AT_location
183 .byte 24 # DW_FORM_exprloc
185 .byte 37 # DW_FORM_strx1
186 .byte 58 # DW_AT_decl_file
187 .byte 11 # DW_FORM_data1
188 .byte 59 # DW_AT_decl_line
189 .byte 11 # DW_FORM_data1
190 .byte 73 # DW_AT_type
191 .byte 19 # DW_FORM_ref4
194 .byte 4 # Abbreviation Code
195 .byte 22 # DW_TAG_typedef
196 .byte 0 # DW_CHILDREN_no
197 .byte 73 # DW_AT_type
198 .byte 19 # DW_FORM_ref4
200 .byte 37 # DW_FORM_strx1
201 .byte 58 # DW_AT_decl_file
202 .byte 11 # DW_FORM_data1
203 .byte 59 # DW_AT_decl_line
204 .byte 11 # DW_FORM_data1
207 .byte 5 # Abbreviation Code
208 .byte 36 # DW_TAG_base_type
209 .byte 0 # DW_CHILDREN_no
211 .byte 37 # DW_FORM_strx1
212 .byte 62 # DW_AT_encoding
213 .byte 11 # DW_FORM_data1
214 .byte 11 # DW_AT_byte_size
215 .byte 11 # DW_FORM_data1
218 .byte 6 # Abbreviation Code
219 .byte 15 # DW_TAG_pointer_type
220 .byte 0 # DW_CHILDREN_no
221 .byte 73 # DW_AT_type
222 .byte 19 # DW_FORM_ref4
225 .byte 7 # Abbreviation Code
226 .byte 16 # DW_TAG_reference_type
227 .byte 0 # DW_CHILDREN_no
228 .byte 73 # DW_AT_type
229 .byte 19 # DW_FORM_ref4
232 .byte 8 # Abbreviation Code
233 .byte 66 # DW_TAG_rvalue_reference_type
234 .byte 0 # DW_CHILDREN_no
235 .byte 73 # DW_AT_type
236 .byte 19 # DW_FORM_ref4
239 .byte 9 # Abbreviation Code
240 .byte 31 # DW_TAG_ptr_to_member_type
241 .byte 0 # DW_CHILDREN_no
242 .byte 73 # DW_AT_type
243 .byte 19 # DW_FORM_ref4
244 .byte 29 # DW_AT_containing_type
245 .byte 19 # DW_FORM_ref4
248 .byte 10 # Abbreviation Code
249 .byte 21 # DW_TAG_subroutine_type
250 .byte 1 # DW_CHILDREN_yes
251 .byte 73 # DW_AT_type
252 .byte 19 # DW_FORM_ref4
255 .byte 11 # Abbreviation Code
256 .byte 5 # DW_TAG_formal_parameter
257 .byte 0 # DW_CHILDREN_no
258 .byte 73 # DW_AT_type
259 .byte 19 # DW_FORM_ref4
260 .byte 52 # DW_AT_artificial
261 .byte 25 # DW_FORM_flag_present
264 .byte 12 # Abbreviation Code
265 .byte 19 # DW_TAG_structure_type
266 .byte 0 # DW_CHILDREN_no
268 .byte 37 # DW_FORM_strx1
269 .byte 60 # DW_AT_declaration
270 .byte 25 # DW_FORM_flag_present
273 .byte 13 # Abbreviation Code
274 .byte 38 # DW_TAG_const_type
275 .byte 0 # DW_CHILDREN_no
276 .byte 73 # DW_AT_type
277 .byte 19 # DW_FORM_ref4
280 .byte 14 # Abbreviation Code
281 .byte 53 # DW_TAG_volatile_type
282 .byte 0 # DW_CHILDREN_no
283 .byte 73 # DW_AT_type
284 .byte 19 # DW_FORM_ref4
287 .byte 15 # Abbreviation Code
288 .byte 55 # DW_TAG_restrict_type
289 .byte 0 # DW_CHILDREN_no
290 .byte 73 # DW_AT_type
291 .byte 19 # DW_FORM_ref4
294 .byte 16 # Abbreviation Code
295 .byte 1 # DW_TAG_array_type
296 .byte 1 # DW_CHILDREN_yes
297 .byte 73 # DW_AT_type
298 .byte 19 # DW_FORM_ref4
301 .byte 17 # Abbreviation Code
302 .byte 33 # DW_TAG_subrange_type
303 .byte 0 # DW_CHILDREN_no
304 .byte 73 # DW_AT_type
305 .byte 19 # DW_FORM_ref4
306 .byte 55 # DW_AT_count
307 .byte 11 # DW_FORM_data1
310 .byte 18 # Abbreviation Code
311 .byte 36 # DW_TAG_base_type
312 .byte 0 # DW_CHILDREN_no
314 .byte 37 # DW_FORM_strx1
315 .byte 11 # DW_AT_byte_size
316 .byte 11 # DW_FORM_data1
317 .byte 62 # DW_AT_encoding
318 .byte 11 # DW_FORM_data1
321 .byte 19 # Abbreviation Code
322 .byte 19 # DW_TAG_structure_type
323 .byte 1 # DW_CHILDREN_yes
324 .byte 54 # DW_AT_calling_convention
325 .byte 11 # DW_FORM_data1
327 .byte 37 # DW_FORM_strx1
328 .byte 11 # DW_AT_byte_size
329 .byte 11 # DW_FORM_data1
330 .byte 58 # DW_AT_decl_file
331 .byte 11 # DW_FORM_data1
332 .byte 59 # DW_AT_decl_line
333 .byte 11 # DW_FORM_data1
336 .byte 20 # Abbreviation Code
337 .byte 47 # DW_TAG_template_type_parameter
338 .byte 0 # DW_CHILDREN_no
339 .byte 73 # DW_AT_type
340 .byte 19 # DW_FORM_ref4
342 .byte 37 # DW_FORM_strx1
345 .byte 21 # Abbreviation Code
346 .byte 13 # DW_TAG_member
347 .byte 0 # DW_CHILDREN_no
349 .byte 37 # DW_FORM_strx1
350 .byte 73 # DW_AT_type
351 .byte 19 # DW_FORM_ref4
352 .byte 58 # DW_AT_decl_file
353 .byte 11 # DW_FORM_data1
354 .byte 59 # DW_AT_decl_line
355 .byte 11 # DW_FORM_data1
356 .byte 56 # DW_AT_data_member_location
357 .byte 11 # DW_FORM_data1
361 .section .debug_info,"",@progbits
363 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
365 .short 5 # DWARF version number
366 .byte 1 # DWARF Unit Type
367 .byte 4 # Address Size (in bytes)
368 .long .debug_abbrev # Offset Into Abbrev. Section
369 .byte 1 # Abbrev [1] 0xc:0x148 DW_TAG_compile_unit
370 .byte 0 # DW_AT_producer
371 .short 26 # DW_AT_language
373 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
374 .long .Lline_table_start0 # DW_AT_stmt_list
375 .byte 2 # DW_AT_comp_dir
376 .byte 0 # DW_AT_low_pc
377 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
378 .long .Laddr_table_base0 # DW_AT_addr_base
379 .byte 2 # Abbrev [2] 0x23:0xa6 DW_TAG_subprogram
380 .byte 0 # DW_AT_low_pc
381 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
382 .byte 1 # DW_AT_frame_base
384 .byte 3 # DW_AT_linkage_name
386 .byte 0 # DW_AT_decl_file
387 .byte 10 # DW_AT_decl_line
389 .byte 3 # Abbrev [3] 0x2f:0xb DW_TAG_variable
390 .byte 2 # DW_AT_location
394 .byte 0 # DW_AT_decl_file
395 .byte 11 # DW_AT_decl_line
396 .long 201 # DW_AT_type
397 .byte 3 # Abbrev [3] 0x3a:0xb DW_TAG_variable
398 .byte 2 # DW_AT_location
402 .byte 0 # DW_AT_decl_file
403 .byte 12 # DW_AT_decl_line
404 .long 205 # DW_AT_type
405 .byte 3 # Abbrev [3] 0x45:0xb DW_TAG_variable
406 .byte 2 # DW_AT_location
410 .byte 0 # DW_AT_decl_file
411 .byte 13 # DW_AT_decl_line
412 .long 210 # DW_AT_type
413 .byte 3 # Abbrev [3] 0x50:0xb DW_TAG_variable
414 .byte 2 # DW_AT_location
418 .byte 0 # DW_AT_decl_file
419 .byte 14 # DW_AT_decl_line
420 .long 215 # DW_AT_type
421 .byte 3 # Abbrev [3] 0x5b:0xb DW_TAG_variable
422 .byte 2 # DW_AT_location
425 .byte 10 # DW_AT_name
426 .byte 0 # DW_AT_decl_file
427 .byte 15 # DW_AT_decl_line
428 .long 220 # DW_AT_type
429 .byte 3 # Abbrev [3] 0x66:0xb DW_TAG_variable
430 .byte 2 # DW_AT_location
434 .byte 0 # DW_AT_decl_file
435 .byte 16 # DW_AT_decl_line
436 .long 247 # DW_AT_type
437 .byte 3 # Abbrev [3] 0x71:0xb DW_TAG_variable
438 .byte 2 # DW_AT_location
441 .byte 12 # DW_AT_name
442 .byte 0 # DW_AT_decl_file
443 .byte 17 # DW_AT_decl_line
444 .long 256 # DW_AT_type
445 .byte 3 # Abbrev [3] 0x7c:0xb DW_TAG_variable
446 .byte 2 # DW_AT_location
449 .byte 13 # DW_AT_name
450 .byte 0 # DW_AT_decl_file
451 .byte 18 # DW_AT_decl_line
452 .long 261 # DW_AT_type
453 .byte 3 # Abbrev [3] 0x87:0xb DW_TAG_variable
454 .byte 2 # DW_AT_location
457 .byte 14 # DW_AT_name
458 .byte 0 # DW_AT_decl_file
459 .byte 19 # DW_AT_decl_line
460 .long 266 # DW_AT_type
461 .byte 3 # Abbrev [3] 0x92:0xb DW_TAG_variable
462 .byte 2 # DW_AT_location
465 .byte 15 # DW_AT_name
466 .byte 0 # DW_AT_decl_file
467 .byte 21 # DW_AT_decl_line
468 .long 192 # DW_AT_type
469 .byte 3 # Abbrev [3] 0x9d:0xb DW_TAG_variable
470 .byte 2 # DW_AT_location
473 .byte 17 # DW_AT_name
474 .byte 0 # DW_AT_decl_file
475 .byte 22 # DW_AT_decl_line
476 .long 271 # DW_AT_type
477 .byte 3 # Abbrev [3] 0xa8:0xc DW_TAG_variable
478 .byte 3 # DW_AT_location
481 .byte 19 # DW_AT_name
482 .byte 0 # DW_AT_decl_file
483 .byte 23 # DW_AT_decl_line
484 .long 287 # DW_AT_type
485 .byte 3 # Abbrev [3] 0xb4:0xc DW_TAG_variable
486 .byte 3 # DW_AT_location
489 .byte 20 # DW_AT_name
490 .byte 0 # DW_AT_decl_file
491 .byte 24 # DW_AT_decl_line
492 .long 305 # DW_AT_type
493 .byte 4 # Abbrev [4] 0xc0:0x8 DW_TAG_typedef
494 .long 201 # DW_AT_type
495 .byte 16 # DW_AT_name
496 .byte 0 # DW_AT_decl_file
497 .byte 20 # DW_AT_decl_line
498 .byte 0 # End Of Children Mark
499 .byte 5 # Abbrev [5] 0xc9:0x4 DW_TAG_base_type
501 .byte 6 # DW_AT_encoding
502 .byte 1 # DW_AT_byte_size
503 .byte 6 # Abbrev [6] 0xcd:0x5 DW_TAG_pointer_type
504 .long 201 # DW_AT_type
505 .byte 7 # Abbrev [7] 0xd2:0x5 DW_TAG_reference_type
506 .long 201 # DW_AT_type
507 .byte 8 # Abbrev [8] 0xd7:0x5 DW_TAG_rvalue_reference_type
508 .long 201 # DW_AT_type
509 .byte 9 # Abbrev [9] 0xdc:0x9 DW_TAG_ptr_to_member_type
510 .long 229 # DW_AT_type
511 .long 245 # DW_AT_containing_type
512 .byte 10 # Abbrev [10] 0xe5:0xb DW_TAG_subroutine_type
513 .long 201 # DW_AT_type
514 .byte 11 # Abbrev [11] 0xea:0x5 DW_TAG_formal_parameter
515 .long 240 # DW_AT_type
517 .byte 0 # End Of Children Mark
518 .byte 6 # Abbrev [6] 0xf0:0x5 DW_TAG_pointer_type
519 .long 245 # DW_AT_type
520 .byte 12 # Abbrev [12] 0xf5:0x2 DW_TAG_structure_type
521 .byte 11 # DW_AT_name
523 .byte 9 # Abbrev [9] 0xf7:0x9 DW_TAG_ptr_to_member_type
524 .long 201 # DW_AT_type
525 .long 245 # DW_AT_containing_type
526 .byte 13 # Abbrev [13] 0x100:0x5 DW_TAG_const_type
527 .long 201 # DW_AT_type
528 .byte 14 # Abbrev [14] 0x105:0x5 DW_TAG_volatile_type
529 .long 201 # DW_AT_type
530 .byte 15 # Abbrev [15] 0x10a:0x5 DW_TAG_restrict_type
531 .long 205 # DW_AT_type
532 .byte 16 # Abbrev [16] 0x10f:0xc DW_TAG_array_type
533 .long 201 # DW_AT_type
534 .byte 17 # Abbrev [17] 0x114:0x6 DW_TAG_subrange_type
535 .long 283 # DW_AT_type
536 .byte 12 # DW_AT_count
537 .byte 0 # End Of Children Mark
538 .byte 18 # Abbrev [18] 0x11b:0x4 DW_TAG_base_type
539 .byte 18 # DW_AT_name
540 .byte 8 # DW_AT_byte_size
541 .byte 7 # DW_AT_encoding
542 .byte 16 # Abbrev [16] 0x11f:0x12 DW_TAG_array_type
543 .long 201 # DW_AT_type
544 .byte 17 # Abbrev [17] 0x124:0x6 DW_TAG_subrange_type
545 .long 283 # DW_AT_type
546 .byte 12 # DW_AT_count
547 .byte 17 # Abbrev [17] 0x12a:0x6 DW_TAG_subrange_type
548 .long 283 # DW_AT_type
549 .byte 24 # DW_AT_count
550 .byte 0 # End Of Children Mark
551 .byte 4 # Abbrev [4] 0x131:0x8 DW_TAG_typedef
552 .long 313 # DW_AT_type
553 .byte 24 # DW_AT_name
554 .byte 0 # DW_AT_decl_file
555 .byte 8 # DW_AT_decl_line
556 .byte 19 # Abbrev [19] 0x139:0x16 DW_TAG_structure_type
557 .byte 5 # DW_AT_calling_convention
558 .byte 23 # DW_AT_name
559 .byte 4 # DW_AT_byte_size
560 .byte 0 # DW_AT_decl_file
561 .byte 4 # DW_AT_decl_line
562 .byte 20 # Abbrev [20] 0x13f:0x6 DW_TAG_template_type_parameter
563 .long 335 # DW_AT_type
564 .byte 22 # DW_AT_name
565 .byte 21 # Abbrev [21] 0x145:0x9 DW_TAG_member
566 .byte 20 # DW_AT_name
567 .long 335 # DW_AT_type
568 .byte 0 # DW_AT_decl_file
569 .byte 5 # DW_AT_decl_line
570 .byte 0 # DW_AT_data_member_location
571 .byte 0 # End Of Children Mark
572 .byte 5 # Abbrev [5] 0x14f:0x4 DW_TAG_base_type
573 .byte 21 # DW_AT_name
574 .byte 5 # DW_AT_encoding
575 .byte 4 # DW_AT_byte_size
576 .byte 0 # End Of Children Mark
578 .section .debug_str_offsets,"",@progbits
579 .long 104 # Length of String Offsets Set
583 .section .debug_str,"MS",@progbits,1
585 .asciz "clang version 19.0.0git" # string offset=0
587 .asciz "frame-types.cpp" # string offset=107
589 .asciz "/tmp" # string offset=123
591 .asciz "_Z1fv" # string offset=128
593 .asciz "f" # string offset=134
595 .asciz "a" # string offset=136
597 .asciz "char" # string offset=138
599 .asciz "b" # string offset=143
601 .asciz "c" # string offset=145
603 .asciz "d" # string offset=147
605 .asciz "e" # string offset=149
607 .asciz "S" # string offset=151
609 .asciz "g" # string offset=153
611 .asciz "h" # string offset=155
613 .asciz "i" # string offset=157
615 .asciz "j" # string offset=159
617 .asciz "char_typedef" # string offset=161
619 .asciz "k" # string offset=174
621 .asciz "__ARRAY_SIZE_TYPE__" # string offset=176
623 .asciz "l" # string offset=196
625 .asciz "m" # string offset=198
627 .asciz "int" # string offset=200
629 .asciz "Y" # string offset=204
631 .asciz "Base<int>" # string offset=206
633 .asciz "Alias<int>" # string offset=216
634 .section .debug_str_offsets,"",@progbits
645 .long .Linfo_string10
646 .long .Linfo_string11
647 .long .Linfo_string12
648 .long .Linfo_string13
649 .long .Linfo_string14
650 .long .Linfo_string15
651 .long .Linfo_string16
652 .long .Linfo_string17
653 .long .Linfo_string18
654 .long .Linfo_string19
655 .long .Linfo_string20
656 .long .Linfo_string21
657 .long .Linfo_string22
658 .long .Linfo_string23
659 .long .Linfo_string24
660 .section .debug_addr,"",@progbits
661 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
663 .short 5 # DWARF version number
664 .byte 4 # Address size
665 .byte 0 # Segment selector size
669 .ident "clang version 19.0.0git"
670 .section ".note.GNU-stack","",@progbits
672 .section .debug_line,"",@progbits