1 # clang++ -O2 -g -gdwarf-4 -gsplit-dwarf
2 # void use(int * x, int * y) {
7 # int helper(int z_, int d_);
10 # int main(int argc, char *argv[]) {
14 # return helper(x, y);
18 .file 0 "." "main.cpp" md5 0x1a68208241c6577e68c7b707538826da
19 .globl _Z3usePiS_ # -- Begin function _Z3usePiS_
21 .type _Z3usePiS_,@function
22 _Z3usePiS_
: # @_Z3usePiS_
26 #DEBUG_VALUE: use:x <- $rdi
27 #DEBUG_VALUE: use:y <- $rsi
28 .loc 0 2 5 prologue_end # main.cpp:2:5
30 .loc 0 3 5 # main.cpp:3:5
32 .loc 0 4 1 # main.cpp:4:1
36 .size _Z3usePiS_, .Lfunc_end0-_Z3usePiS_
39 .globl main # -- Begin function main
46 #DEBUG_VALUE: main:argc <- $edi
47 #DEBUG_VALUE: main:argv <- $rsi
48 # kill: def $edi killed $edi def $rdi
49 .loc 0 10 6 prologue_end # main.cpp:10:6
51 .loc 0 11 13 # main.cpp:11:13
54 #DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi
55 .loc 0 11 6 is_stmt 0 # main.cpp:11:6
57 # kill: def $edi killed $edi killed $rdi
59 .loc 0 13 11 is_stmt 1 # main.cpp:13:11
60 jmp _Z6helperii@PLT
# TAILCALL
63 .size main, .Lfunc_end1-main
82 .section .debug_loclists.dwo,"e",@progbits
83 .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length
84 .Ldebug_list_header_start0:
86 .byte 8 # Address size
87 .byte 0 # Segment selector size
88 .long 1 # Offset entry count
89 .Lloclists_table_base0:
90 .long .Ldebug_loc0-.Lloclists_table_base0
92 .byte 1 # DW_LLE_base_addressx
93 .byte 2 # base address index
94 .byte 4 # DW_LLE_offset_pair
95 .uleb128 .Lfunc_begin1-.Lfunc_begin0 # starting offset
96 .uleb128 .Ltmp1-.Lfunc_begin0 # ending offset
97 .byte 1 # Loc expr size
99 .byte 4 # DW_LLE_offset_pair
100 .uleb128 .Ltmp1-.Lfunc_begin0 # starting offset
101 .uleb128 .Lfunc_end1-.Lfunc_begin0 # ending offset
102 .byte 4 # Loc expr size
103 .byte 163 # DW_OP_entry_value
105 .byte 84 # DW_OP_reg4
106 .byte 159 # DW_OP_stack_value
107 .byte 0 # DW_LLE_end_of_list
108 .Ldebug_list_header_end0:
109 .section .debug_abbrev,"",@progbits
110 .byte 1 # Abbreviation Code
111 .byte 74 # DW_TAG_skeleton_unit
112 .byte 0 # DW_CHILDREN_no
113 .byte 16 # DW_AT_stmt_list
114 .byte 23 # DW_FORM_sec_offset
115 .byte 114 # DW_AT_str_offsets_base
116 .byte 23 # DW_FORM_sec_offset
117 .byte 27 # DW_AT_comp_dir
118 .byte 37 # DW_FORM_strx1
119 .ascii "\264B" # DW_AT_GNU_pubnames
120 .byte 25 # DW_FORM_flag_present
121 .byte 118 # DW_AT_dwo_name
122 .byte 37 # DW_FORM_strx1
123 .byte 17 # DW_AT_low_pc
124 .byte 27 # DW_FORM_addrx
125 .byte 18 # DW_AT_high_pc
126 .byte 6 # DW_FORM_data4
127 .byte 115 # DW_AT_addr_base
128 .byte 23 # DW_FORM_sec_offset
132 .section .debug_info,"",@progbits
134 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
136 .short 5 # DWARF version number
137 .byte 4 # DWARF Unit Type
138 .byte 8 # Address Size (in bytes)
139 .long .debug_abbrev # Offset Into Abbrev. Section
140 .quad 1538385283627936656
141 .byte 1 # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit
142 .long .Lline_table_start0 # DW_AT_stmt_list
143 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
144 .byte 0 # DW_AT_comp_dir
146 .byte 1 # DW_AT_dwo_name
147 .byte 2 # DW_AT_low_pc
148 .long .Lfunc_end1-.Lfunc_begin0 # DW_AT_high_pc
149 .long .Laddr_table_base0 # DW_AT_addr_base
151 .section .debug_str_offsets,"",@progbits
152 .long 12 # Length of String Offsets Set
156 .section .debug_str,"MS",@progbits,1
158 .asciz "." # string offset=0
160 .asciz "main.dwo" # string offset=47
161 .section .debug_str_offsets,"",@progbits
164 .section .debug_str_offsets.dwo,"e",@progbits
165 .long 60 # Length of String Offsets Set
168 .section .debug_str.dwo,"eMS",@progbits,1
170 .asciz "x" # string offset=0
172 .asciz "int" # string offset=2
174 .asciz "y" # string offset=6
176 .asciz "_Z6helperii" # string offset=8
178 .asciz "helper" # string offset=20
180 .asciz "_Z3usePiS_" # string offset=27
182 .asciz "use" # string offset=38
184 .asciz "main" # string offset=42
186 .asciz "argc" # string offset=47
188 .asciz "argv" # string offset=52
190 .asciz "char" # string offset=57
192 .asciz "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)" # string offset=62
194 .asciz "main.cpp" # string offset=163
196 .asciz "main.dwo" # string offset=172
197 .section .debug_str_offsets.dwo,"e",@progbits
212 .section .debug_info.dwo,"e",@progbits
213 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
214 .Ldebug_info_dwo_start0:
215 .short 5 # DWARF version number
216 .byte 5 # DWARF Unit Type
217 .byte 8 # Address Size (in bytes)
218 .long 0 # Offset Into Abbrev. Section
219 .quad 1538385283627936656
220 .byte 1 # Abbrev [1] 0x14:0x8e DW_TAG_compile_unit
221 .byte 11 # DW_AT_producer
222 .short 33 # DW_AT_language
223 .byte 12 # DW_AT_name
224 .byte 13 # DW_AT_dwo_name
225 .byte 2 # Abbrev [2] 0x1a:0xb DW_TAG_variable
227 .long 37 # DW_AT_type
229 .byte 0 # DW_AT_decl_file
230 .byte 7 # DW_AT_decl_line
231 .byte 2 # DW_AT_location
234 .byte 3 # Abbrev [3] 0x25:0x4 DW_TAG_base_type
236 .byte 5 # DW_AT_encoding
237 .byte 4 # DW_AT_byte_size
238 .byte 2 # Abbrev [2] 0x29:0xb DW_TAG_variable
240 .long 37 # DW_AT_type
242 .byte 0 # DW_AT_decl_file
243 .byte 8 # DW_AT_decl_line
244 .byte 2 # DW_AT_location
247 .byte 4 # Abbrev [4] 0x34:0x21 DW_TAG_subprogram
248 .byte 2 # DW_AT_low_pc
249 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
250 .byte 1 # DW_AT_frame_base
252 # DW_AT_call_all_calls
253 .byte 5 # DW_AT_linkage_name
255 .byte 0 # DW_AT_decl_file
256 .byte 1 # DW_AT_decl_line
258 .byte 5 # Abbrev [5] 0x40:0xa DW_TAG_formal_parameter
259 .byte 1 # DW_AT_location
262 .byte 0 # DW_AT_decl_file
263 .byte 1 # DW_AT_decl_line
264 .long 142 # DW_AT_type
265 .byte 5 # Abbrev [5] 0x4a:0xa DW_TAG_formal_parameter
266 .byte 1 # DW_AT_location
269 .byte 0 # DW_AT_decl_file
270 .byte 1 # DW_AT_decl_line
271 .long 142 # DW_AT_type
272 .byte 0 # End Of Children Mark
273 .byte 6 # Abbrev [6] 0x55:0x25 DW_TAG_subprogram
274 .byte 0 # DW_AT_ranges
275 .byte 1 # DW_AT_frame_base
277 # DW_AT_call_all_calls
279 .byte 0 # DW_AT_decl_file
280 .byte 9 # DW_AT_decl_line
281 .long 37 # DW_AT_type
283 .byte 5 # Abbrev [5] 0x60:0xa DW_TAG_formal_parameter
284 .byte 1 # DW_AT_location
287 .byte 0 # DW_AT_decl_file
288 .byte 9 # DW_AT_decl_line
289 .long 37 # DW_AT_type
290 .byte 7 # Abbrev [7] 0x6a:0x9 DW_TAG_formal_parameter
291 .byte 0 # DW_AT_location
293 .byte 0 # DW_AT_decl_file
294 .byte 9 # DW_AT_decl_line
295 .long 147 # DW_AT_type
296 .byte 8 # Abbrev [8] 0x73:0x6 DW_TAG_call_site
297 .long 122 # DW_AT_call_origin
298 # DW_AT_call_tail_call
299 .byte 3 # DW_AT_call_pc
300 .byte 0 # End Of Children Mark
301 .byte 9 # Abbrev [9] 0x7a:0x14 DW_TAG_subprogram
302 .byte 3 # DW_AT_linkage_name
304 .byte 0 # DW_AT_decl_file
305 .byte 6 # DW_AT_decl_line
306 .long 37 # DW_AT_type
309 .byte 10 # Abbrev [10] 0x83:0x5 DW_TAG_formal_parameter
310 .long 37 # DW_AT_type
311 .byte 10 # Abbrev [10] 0x88:0x5 DW_TAG_formal_parameter
312 .long 37 # DW_AT_type
313 .byte 0 # End Of Children Mark
314 .byte 11 # Abbrev [11] 0x8e:0x5 DW_TAG_pointer_type
315 .long 37 # DW_AT_type
316 .byte 11 # Abbrev [11] 0x93:0x5 DW_TAG_pointer_type
317 .long 152 # DW_AT_type
318 .byte 11 # Abbrev [11] 0x98:0x5 DW_TAG_pointer_type
319 .long 157 # DW_AT_type
320 .byte 3 # Abbrev [3] 0x9d:0x4 DW_TAG_base_type
321 .byte 10 # DW_AT_name
322 .byte 6 # DW_AT_encoding
323 .byte 1 # DW_AT_byte_size
324 .byte 0 # End Of Children Mark
325 .Ldebug_info_dwo_end0:
326 .section .debug_abbrev.dwo,"e",@progbits
327 .byte 1 # Abbreviation Code
328 .byte 17 # DW_TAG_compile_unit
329 .byte 1 # DW_CHILDREN_yes
330 .byte 37 # DW_AT_producer
331 .byte 37 # DW_FORM_strx1
332 .byte 19 # DW_AT_language
333 .byte 5 # DW_FORM_data2
335 .byte 37 # DW_FORM_strx1
336 .byte 118 # DW_AT_dwo_name
337 .byte 37 # DW_FORM_strx1
340 .byte 2 # Abbreviation Code
341 .byte 52 # DW_TAG_variable
342 .byte 0 # DW_CHILDREN_no
344 .byte 37 # DW_FORM_strx1
345 .byte 73 # DW_AT_type
346 .byte 19 # DW_FORM_ref4
347 .byte 63 # DW_AT_external
348 .byte 25 # DW_FORM_flag_present
349 .byte 58 # DW_AT_decl_file
350 .byte 11 # DW_FORM_data1
351 .byte 59 # DW_AT_decl_line
352 .byte 11 # DW_FORM_data1
353 .byte 2 # DW_AT_location
354 .byte 24 # DW_FORM_exprloc
357 .byte 3 # Abbreviation Code
358 .byte 36 # DW_TAG_base_type
359 .byte 0 # DW_CHILDREN_no
361 .byte 37 # DW_FORM_strx1
362 .byte 62 # DW_AT_encoding
363 .byte 11 # DW_FORM_data1
364 .byte 11 # DW_AT_byte_size
365 .byte 11 # DW_FORM_data1
368 .byte 4 # Abbreviation Code
369 .byte 46 # DW_TAG_subprogram
370 .byte 1 # DW_CHILDREN_yes
371 .byte 17 # DW_AT_low_pc
372 .byte 27 # DW_FORM_addrx
373 .byte 18 # DW_AT_high_pc
374 .byte 6 # DW_FORM_data4
375 .byte 64 # DW_AT_frame_base
376 .byte 24 # DW_FORM_exprloc
377 .byte 122 # DW_AT_call_all_calls
378 .byte 25 # DW_FORM_flag_present
379 .byte 110 # DW_AT_linkage_name
380 .byte 37 # DW_FORM_strx1
382 .byte 37 # DW_FORM_strx1
383 .byte 58 # DW_AT_decl_file
384 .byte 11 # DW_FORM_data1
385 .byte 59 # DW_AT_decl_line
386 .byte 11 # DW_FORM_data1
387 .byte 63 # DW_AT_external
388 .byte 25 # DW_FORM_flag_present
391 .byte 5 # Abbreviation Code
392 .byte 5 # DW_TAG_formal_parameter
393 .byte 0 # DW_CHILDREN_no
394 .byte 2 # DW_AT_location
395 .byte 24 # DW_FORM_exprloc
397 .byte 37 # DW_FORM_strx1
398 .byte 58 # DW_AT_decl_file
399 .byte 11 # DW_FORM_data1
400 .byte 59 # DW_AT_decl_line
401 .byte 11 # DW_FORM_data1
402 .byte 73 # DW_AT_type
403 .byte 19 # DW_FORM_ref4
406 .byte 6 # Abbreviation Code
407 .byte 46 # DW_TAG_subprogram
408 .byte 1 # DW_CHILDREN_yes
409 .byte 85 # DW_AT_ranges
410 .byte 35 # DW_FORM_rnglistx
411 .byte 64 # DW_AT_frame_base
412 .byte 24 # DW_FORM_exprloc
413 .byte 122 # DW_AT_call_all_calls
414 .byte 25 # DW_FORM_flag_present
416 .byte 37 # DW_FORM_strx1
417 .byte 58 # DW_AT_decl_file
418 .byte 11 # DW_FORM_data1
419 .byte 59 # DW_AT_decl_line
420 .byte 11 # DW_FORM_data1
421 .byte 73 # DW_AT_type
422 .byte 19 # DW_FORM_ref4
423 .byte 63 # DW_AT_external
424 .byte 25 # DW_FORM_flag_present
427 .byte 7 # Abbreviation Code
428 .byte 5 # DW_TAG_formal_parameter
429 .byte 0 # DW_CHILDREN_no
430 .byte 2 # DW_AT_location
431 .byte 34 # DW_FORM_loclistx
433 .byte 37 # DW_FORM_strx1
434 .byte 58 # DW_AT_decl_file
435 .byte 11 # DW_FORM_data1
436 .byte 59 # DW_AT_decl_line
437 .byte 11 # DW_FORM_data1
438 .byte 73 # DW_AT_type
439 .byte 19 # DW_FORM_ref4
442 .byte 8 # Abbreviation Code
443 .byte 72 # DW_TAG_call_site
444 .byte 0 # DW_CHILDREN_no
445 .byte 127 # DW_AT_call_origin
446 .byte 19 # DW_FORM_ref4
447 .ascii "\202\001" # DW_AT_call_tail_call
448 .byte 25 # DW_FORM_flag_present
449 .ascii "\201\001" # DW_AT_call_pc
450 .byte 27 # DW_FORM_addrx
453 .byte 9 # Abbreviation Code
454 .byte 46 # DW_TAG_subprogram
455 .byte 1 # DW_CHILDREN_yes
456 .byte 110 # DW_AT_linkage_name
457 .byte 37 # DW_FORM_strx1
459 .byte 37 # DW_FORM_strx1
460 .byte 58 # DW_AT_decl_file
461 .byte 11 # DW_FORM_data1
462 .byte 59 # DW_AT_decl_line
463 .byte 11 # DW_FORM_data1
464 .byte 73 # DW_AT_type
465 .byte 19 # DW_FORM_ref4
466 .byte 60 # DW_AT_declaration
467 .byte 25 # DW_FORM_flag_present
468 .byte 63 # DW_AT_external
469 .byte 25 # DW_FORM_flag_present
472 .byte 10 # Abbreviation Code
473 .byte 5 # DW_TAG_formal_parameter
474 .byte 0 # DW_CHILDREN_no
475 .byte 73 # DW_AT_type
476 .byte 19 # DW_FORM_ref4
479 .byte 11 # Abbreviation Code
480 .byte 15 # DW_TAG_pointer_type
481 .byte 0 # DW_CHILDREN_no
482 .byte 73 # DW_AT_type
483 .byte 19 # DW_FORM_ref4
487 .section .debug_rnglists.dwo,"e",@progbits
488 .long .Ldebug_list_header_end1-.Ldebug_list_header_start1 # Length
489 .Ldebug_list_header_start1:
491 .byte 8 # Address size
492 .byte 0 # Segment selector size
493 .long 1 # Offset entry count
494 .Lrnglists_dwo_table_base0:
495 .long .Ldebug_ranges0-.Lrnglists_dwo_table_base0
497 .byte 4 # DW_RLE_offset_pair
498 .uleb128 .Lfunc_begin1-.Lfunc_begin0 # starting offset
499 .uleb128 .Lfunc_end1-.Lfunc_begin0 # ending offset
500 .byte 0 # DW_RLE_end_of_list
501 .Ldebug_list_header_end1:
502 .section .debug_addr,"",@progbits
503 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
505 .short 5 # DWARF version number
506 .byte 8 # Address size
507 .byte 0 # Segment selector size
514 .section .debug_gnu_pubnames,"",@progbits
515 .long .LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
517 .short 2 # DWARF Version
518 .long .Lcu_begin0 # Offset of Compilation Unit Info
519 .long 40 # Compilation Unit Length
520 .long 26 # DIE offset
521 .byte 32 # Attributes: VARIABLE, EXTERNAL
522 .asciz "x" # External Name
523 .long 41 # DIE offset
524 .byte 32 # Attributes: VARIABLE, EXTERNAL
525 .asciz "y" # External Name
526 .long 52 # DIE offset
527 .byte 48 # Attributes: FUNCTION, EXTERNAL
528 .asciz "use" # External Name
529 .long 85 # DIE offset
530 .byte 48 # Attributes: FUNCTION, EXTERNAL
531 .asciz "main" # External Name
534 .section .debug_gnu_pubtypes,"",@progbits
535 .long .LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
537 .short 2 # DWARF Version
538 .long .Lcu_begin0 # Offset of Compilation Unit Info
539 .long 40 # Compilation Unit Length
540 .long 37 # DIE offset
541 .byte 144 # Attributes: TYPE, STATIC
542 .asciz "int" # External Name
543 .long 157 # DIE offset
544 .byte 144 # Attributes: TYPE, STATIC
545 .asciz "char" # External Name
548 .ident "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)"
549 .section ".note.GNU-stack","",@progbits
551 .section .debug_line,"",@progbits