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
:4
12 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:5
13 // CHECK-NEXT
: -8 4 ??
16 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:6
17 // CHECK-NEXT
: -12 4 ??
20 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:7
21 // CHECK-NEXT
: -16 4 ??
24 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:8
25 // CHECK-NEXT
: -32 8 ??
28 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:9
29 // CHECK-NEXT
: -36 4 ??
32 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:10
33 // CHECK-NEXT
: -37 1 ??
36 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:11
37 // CHECK-NEXT
: -38 1 ??
40 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:12
41 // CHECK-NEXT
: -44 4 ??
44 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:14
45 // CHECK-NEXT
: -45 1 ??
48 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:15
49 // CHECK-NEXT
: -57 12 ??
52 // CHECK-NEXT
: /tmp
{{/|
\\}}frame-types.cpp
:16
53 // CHECK-NEXT
: -345 288 ??
68 // char
*__restrict i;
69 // typedef char char_typedef;
75 // clang+
+ --target
=i386-linux-gnu frame-types.cpp
-g
-std=c+
+11 -S
-o frame-types.s
78 .file "frame-types.cpp"
79 .globl _Z1fv # -- Begin function _Z1fv
84 .file 1 "/tmp" "frame-types.cpp"
85 .loc 1 3 0 # frame-types.cpp:3:0
86 .cfi_sections .debug_frame
93 .cfi_def_cfa_register %ebp
94 subl $
352, %esp
# imm = 0x160
96 .loc 1 6 9 prologue_end # frame-types.cpp:6:9
99 #DEBUG_VALUE: f:a <- [$eax+0]
101 .loc 1 7 14 # frame-types.cpp:7:14
103 .loc 1 7 10 is_stmt 0 # frame-types.cpp:7:10
107 .loc 1 10 14 is_stmt 1 # frame-types.cpp:10:14
109 .loc 1 17 1 # frame-types.cpp:17:1
110 addl $
352, %esp
# imm = 0x160
116 .size _Z1fv, .Lfunc_end0-_Z1fv
119 .section .debug_str,"MS",@progbits,1
121 .asciz "clang version 9.0.0 " # string offset=0
123 .asciz "frame-types.cpp" # string offset=21
125 .asciz "/tmp" # string offset=37
127 .asciz "_Z1fv" # string offset=42
129 .asciz "f" # string offset=48
131 .asciz "a" # string offset=50
133 .asciz "char" # string offset=52
135 .asciz "b" # string offset=57
137 .asciz "c" # string offset=59
139 .asciz "d" # string offset=61
141 .asciz "e" # string offset=63
143 .asciz "S" # string offset=65
145 .asciz "g" # string offset=67
147 .asciz "h" # string offset=69
149 .asciz "i" # string offset=71
151 .asciz "j" # string offset=73
153 .asciz "char_typedef" # string offset=75
155 .asciz "k" # string offset=88
157 .asciz "__ARRAY_SIZE_TYPE__" # string offset=90
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
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
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
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
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
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
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
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
229 .byte 5 # Abbreviation Code
230 .byte 36 # DW_TAG_base_type
231 .byte 0 # DW_CHILDREN_no
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
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
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
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
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
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
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
286 .byte 12 # Abbreviation Code
287 .byte 19 # DW_TAG_structure_type
288 .byte 0 # DW_CHILDREN_no
290 .byte 14 # DW_FORM_strp
291 .byte 60 # DW_AT_declaration
292 .byte 25 # DW_FORM_flag_present
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
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
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
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
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
332 .byte 18 # Abbreviation Code
333 .byte 36 # DW_TAG_base_type
334 .byte 0 # DW_CHILDREN_no
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
344 .section .debug_info,"",@progbits
346 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
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
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
369 .byte 3 # Abbrev [3] 0x3b:0xe DW_TAG_variable
370 .byte 2 # DW_AT_location
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
531 .section .debug_line,"",@progbits