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);
19 .file 1 "." "main.cpp"
20 .globl _Z3usePiS_ # -- Begin function _Z3usePiS_
22 .type _Z3usePiS_,@function
23 _Z3usePiS_
: # @_Z3usePiS_
27 #DEBUG_VALUE: use:x <- $rdi
28 #DEBUG_VALUE: use:y <- $rsi
29 .loc 1 2 5 prologue_end # main.cpp:2:5
31 .loc 1 3 5 # main.cpp:3:5
33 .loc 1 4 1 # main.cpp:4:1
37 .size _Z3usePiS_, .Lfunc_end0-_Z3usePiS_
40 .globl main # -- Begin function main
47 #DEBUG_VALUE: main:argc <- $edi
48 #DEBUG_VALUE: main:argv <- $rsi
49 # kill: def $edi killed $edi def $rdi
50 .loc 1 10 6 prologue_end # main.cpp:10:6
52 .loc 1 11 13 # main.cpp:11:13
55 #DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi
56 .loc 1 11 6 is_stmt 0 # main.cpp:11:6
58 # kill: def $edi killed $edi killed $rdi
60 .loc 1 13 11 is_stmt 1 # main.cpp:13:11
61 jmp _Z6helperii@PLT
# TAILCALL
64 .size main, .Lfunc_end1-main
83 .section .debug_loc.dwo,"e",@progbits
87 .long .Ltmp1-.Lfunc_begin1
88 .short 1 # Loc expr size
92 .long .Lfunc_end1-.Ltmp1
93 .short 4 # Loc expr size
94 .byte 243 # DW_OP_GNU_entry_value
97 .byte 159 # DW_OP_stack_value
99 .section .debug_abbrev,"",@progbits
100 .byte 1 # Abbreviation Code
101 .byte 17 # DW_TAG_compile_unit
102 .byte 0 # DW_CHILDREN_no
103 .byte 16 # DW_AT_stmt_list
104 .byte 23 # DW_FORM_sec_offset
105 .byte 27 # DW_AT_comp_dir
106 .byte 14 # DW_FORM_strp
107 .ascii "\264B" # DW_AT_GNU_pubnames
108 .byte 25 # DW_FORM_flag_present
109 .ascii "\260B" # DW_AT_GNU_dwo_name
110 .byte 14 # DW_FORM_strp
111 .ascii "\261B" # DW_AT_GNU_dwo_id
112 .byte 7 # DW_FORM_data8
113 .byte 17 # DW_AT_low_pc
114 .byte 1 # DW_FORM_addr
115 .byte 18 # DW_AT_high_pc
116 .byte 6 # DW_FORM_data4
117 .ascii "\263B" # DW_AT_GNU_addr_base
118 .byte 23 # DW_FORM_sec_offset
122 .section .debug_info,"",@progbits
124 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
126 .short 4 # DWARF version number
127 .long .debug_abbrev # Offset Into Abbrev. Section
128 .byte 8 # Address Size (in bytes)
129 .byte 1 # Abbrev [1] 0xb:0x25 DW_TAG_compile_unit
130 .long .Lline_table_start0 # DW_AT_stmt_list
131 .long .Lskel_string0 # DW_AT_comp_dir
133 .long .Lskel_string1 # DW_AT_GNU_dwo_name
134 .quad -3308548803209949056 # DW_AT_GNU_dwo_id
135 .quad .Lfunc_begin0 # DW_AT_low_pc
136 .long .Lfunc_end1-.Lfunc_begin0 # DW_AT_high_pc
137 .long .Laddr_table_base0 # DW_AT_GNU_addr_base
139 .section .debug_str,"MS",@progbits,1
141 .asciz "." # string offset=0
143 .asciz "main.dwo" # string offset=47
144 .section .debug_str.dwo,"eMS",@progbits,1
146 .asciz "x" # string offset=0
148 .asciz "int" # string offset=2
150 .asciz "y" # string offset=6
152 .asciz "_Z6helperii" # string offset=8
154 .asciz "helper" # string offset=20
156 .asciz "_Z3usePiS_" # string offset=27
158 .asciz "use" # string offset=38
160 .asciz "main" # string offset=42
162 .asciz "argc" # string offset=47
164 .asciz "argv" # string offset=52
166 .asciz "char" # string offset=57
168 .asciz "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)" # string offset=62
170 .asciz "main.cpp" # string offset=163
172 .asciz "main.dwo" # string offset=172
173 .section .debug_str_offsets.dwo,"e",@progbits
188 .section .debug_info.dwo,"e",@progbits
189 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
190 .Ldebug_info_dwo_start0:
191 .short 4 # DWARF version number
192 .long 0 # Offset Into Abbrev. Section
193 .byte 8 # Address Size (in bytes)
194 .byte 1 # Abbrev [1] 0xb:0x9d DW_TAG_compile_unit
195 .byte 11 # DW_AT_producer
196 .short 33 # DW_AT_language
197 .byte 12 # DW_AT_name
198 .byte 13 # DW_AT_GNU_dwo_name
199 .quad -3308548803209949056 # DW_AT_GNU_dwo_id
200 .byte 2 # Abbrev [2] 0x19:0xb DW_TAG_variable
202 .long 36 # DW_AT_type
204 .byte 1 # DW_AT_decl_file
205 .byte 7 # DW_AT_decl_line
206 .byte 2 # DW_AT_location
209 .byte 3 # Abbrev [3] 0x24:0x4 DW_TAG_base_type
211 .byte 5 # DW_AT_encoding
212 .byte 4 # DW_AT_byte_size
213 .byte 2 # Abbrev [2] 0x28:0xb DW_TAG_variable
215 .long 36 # DW_AT_type
217 .byte 1 # DW_AT_decl_file
218 .byte 8 # DW_AT_decl_line
219 .byte 2 # DW_AT_location
222 .byte 4 # Abbrev [4] 0x33:0x21 DW_TAG_subprogram
223 .byte 2 # DW_AT_low_pc
224 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
225 .byte 1 # DW_AT_frame_base
227 # DW_AT_GNU_all_call_sites
228 .byte 5 # DW_AT_linkage_name
230 .byte 1 # DW_AT_decl_file
231 .byte 1 # DW_AT_decl_line
233 .byte 5 # Abbrev [5] 0x3f:0xa DW_TAG_formal_parameter
234 .byte 1 # DW_AT_location
237 .byte 1 # DW_AT_decl_file
238 .byte 1 # DW_AT_decl_line
239 .long 148 # DW_AT_type
240 .byte 5 # Abbrev [5] 0x49:0xa DW_TAG_formal_parameter
241 .byte 1 # DW_AT_location
244 .byte 1 # DW_AT_decl_file
245 .byte 1 # DW_AT_decl_line
246 .long 148 # DW_AT_type
247 .byte 0 # End Of Children Mark
248 .byte 6 # Abbrev [6] 0x54:0x2c DW_TAG_subprogram
249 .byte 3 # DW_AT_low_pc
250 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc
251 .byte 1 # DW_AT_frame_base
253 # DW_AT_GNU_all_call_sites
255 .byte 1 # DW_AT_decl_file
256 .byte 9 # DW_AT_decl_line
257 .long 36 # DW_AT_type
259 .byte 5 # Abbrev [5] 0x63:0xa DW_TAG_formal_parameter
260 .byte 1 # DW_AT_location
263 .byte 1 # DW_AT_decl_file
264 .byte 9 # DW_AT_decl_line
265 .long 36 # DW_AT_type
266 .byte 7 # Abbrev [7] 0x6d:0xc DW_TAG_formal_parameter
267 .long .Ldebug_loc0-.debug_loc.dwo # DW_AT_location
269 .byte 1 # DW_AT_decl_file
270 .byte 9 # DW_AT_decl_line
271 .long 153 # DW_AT_type
272 .byte 8 # Abbrev [8] 0x79:0x6 DW_TAG_GNU_call_site
273 .long 128 # DW_AT_abstract_origin
274 # DW_AT_GNU_tail_call
275 .byte 4 # DW_AT_low_pc
276 .byte 0 # End Of Children Mark
277 .byte 9 # Abbrev [9] 0x80:0x14 DW_TAG_subprogram
278 .byte 3 # DW_AT_linkage_name
280 .byte 1 # DW_AT_decl_file
281 .byte 6 # DW_AT_decl_line
282 .long 36 # DW_AT_type
285 .byte 10 # Abbrev [10] 0x89:0x5 DW_TAG_formal_parameter
286 .long 36 # DW_AT_type
287 .byte 10 # Abbrev [10] 0x8e:0x5 DW_TAG_formal_parameter
288 .long 36 # DW_AT_type
289 .byte 0 # End Of Children Mark
290 .byte 11 # Abbrev [11] 0x94:0x5 DW_TAG_pointer_type
291 .long 36 # DW_AT_type
292 .byte 11 # Abbrev [11] 0x99:0x5 DW_TAG_pointer_type
293 .long 158 # DW_AT_type
294 .byte 11 # Abbrev [11] 0x9e:0x5 DW_TAG_pointer_type
295 .long 163 # DW_AT_type
296 .byte 3 # Abbrev [3] 0xa3:0x4 DW_TAG_base_type
297 .byte 10 # DW_AT_name
298 .byte 6 # DW_AT_encoding
299 .byte 1 # DW_AT_byte_size
300 .byte 0 # End Of Children Mark
301 .Ldebug_info_dwo_end0:
302 .section .debug_abbrev.dwo,"e",@progbits
303 .byte 1 # Abbreviation Code
304 .byte 17 # DW_TAG_compile_unit
305 .byte 1 # DW_CHILDREN_yes
306 .byte 37 # DW_AT_producer
307 .ascii "\202>" # DW_FORM_GNU_str_index
308 .byte 19 # DW_AT_language
309 .byte 5 # DW_FORM_data2
311 .ascii "\202>" # DW_FORM_GNU_str_index
312 .ascii "\260B" # DW_AT_GNU_dwo_name
313 .ascii "\202>" # DW_FORM_GNU_str_index
314 .ascii "\261B" # DW_AT_GNU_dwo_id
315 .byte 7 # DW_FORM_data8
318 .byte 2 # Abbreviation Code
319 .byte 52 # DW_TAG_variable
320 .byte 0 # DW_CHILDREN_no
322 .ascii "\202>" # DW_FORM_GNU_str_index
323 .byte 73 # DW_AT_type
324 .byte 19 # DW_FORM_ref4
325 .byte 63 # DW_AT_external
326 .byte 25 # DW_FORM_flag_present
327 .byte 58 # DW_AT_decl_file
328 .byte 11 # DW_FORM_data1
329 .byte 59 # DW_AT_decl_line
330 .byte 11 # DW_FORM_data1
331 .byte 2 # DW_AT_location
332 .byte 24 # DW_FORM_exprloc
335 .byte 3 # Abbreviation Code
336 .byte 36 # DW_TAG_base_type
337 .byte 0 # DW_CHILDREN_no
339 .ascii "\202>" # DW_FORM_GNU_str_index
340 .byte 62 # DW_AT_encoding
341 .byte 11 # DW_FORM_data1
342 .byte 11 # DW_AT_byte_size
343 .byte 11 # DW_FORM_data1
346 .byte 4 # Abbreviation Code
347 .byte 46 # DW_TAG_subprogram
348 .byte 1 # DW_CHILDREN_yes
349 .byte 17 # DW_AT_low_pc
350 .ascii "\201>" # DW_FORM_GNU_addr_index
351 .byte 18 # DW_AT_high_pc
352 .byte 6 # DW_FORM_data4
353 .byte 64 # DW_AT_frame_base
354 .byte 24 # DW_FORM_exprloc
355 .ascii "\227B" # DW_AT_GNU_all_call_sites
356 .byte 25 # DW_FORM_flag_present
357 .byte 110 # DW_AT_linkage_name
358 .ascii "\202>" # DW_FORM_GNU_str_index
360 .ascii "\202>" # DW_FORM_GNU_str_index
361 .byte 58 # DW_AT_decl_file
362 .byte 11 # DW_FORM_data1
363 .byte 59 # DW_AT_decl_line
364 .byte 11 # DW_FORM_data1
365 .byte 63 # DW_AT_external
366 .byte 25 # DW_FORM_flag_present
369 .byte 5 # Abbreviation Code
370 .byte 5 # DW_TAG_formal_parameter
371 .byte 0 # DW_CHILDREN_no
372 .byte 2 # DW_AT_location
373 .byte 24 # DW_FORM_exprloc
375 .ascii "\202>" # DW_FORM_GNU_str_index
376 .byte 58 # DW_AT_decl_file
377 .byte 11 # DW_FORM_data1
378 .byte 59 # DW_AT_decl_line
379 .byte 11 # DW_FORM_data1
380 .byte 73 # DW_AT_type
381 .byte 19 # DW_FORM_ref4
384 .byte 6 # Abbreviation Code
385 .byte 46 # DW_TAG_subprogram
386 .byte 1 # DW_CHILDREN_yes
387 .byte 17 # DW_AT_low_pc
388 .ascii "\201>" # DW_FORM_GNU_addr_index
389 .byte 18 # DW_AT_high_pc
390 .byte 6 # DW_FORM_data4
391 .byte 64 # DW_AT_frame_base
392 .byte 24 # DW_FORM_exprloc
393 .ascii "\227B" # DW_AT_GNU_all_call_sites
394 .byte 25 # DW_FORM_flag_present
396 .ascii "\202>" # DW_FORM_GNU_str_index
397 .byte 58 # DW_AT_decl_file
398 .byte 11 # DW_FORM_data1
399 .byte 59 # DW_AT_decl_line
400 .byte 11 # DW_FORM_data1
401 .byte 73 # DW_AT_type
402 .byte 19 # DW_FORM_ref4
403 .byte 63 # DW_AT_external
404 .byte 25 # DW_FORM_flag_present
407 .byte 7 # Abbreviation Code
408 .byte 5 # DW_TAG_formal_parameter
409 .byte 0 # DW_CHILDREN_no
410 .byte 2 # DW_AT_location
411 .byte 23 # DW_FORM_sec_offset
413 .ascii "\202>" # DW_FORM_GNU_str_index
414 .byte 58 # DW_AT_decl_file
415 .byte 11 # DW_FORM_data1
416 .byte 59 # DW_AT_decl_line
417 .byte 11 # DW_FORM_data1
418 .byte 73 # DW_AT_type
419 .byte 19 # DW_FORM_ref4
422 .byte 8 # Abbreviation Code
423 .ascii "\211\202\001" # DW_TAG_GNU_call_site
424 .byte 0 # DW_CHILDREN_no
425 .byte 49 # DW_AT_abstract_origin
426 .byte 19 # DW_FORM_ref4
427 .ascii "\225B" # DW_AT_GNU_tail_call
428 .byte 25 # DW_FORM_flag_present
429 .byte 17 # DW_AT_low_pc
430 .ascii "\201>" # DW_FORM_GNU_addr_index
433 .byte 9 # Abbreviation Code
434 .byte 46 # DW_TAG_subprogram
435 .byte 1 # DW_CHILDREN_yes
436 .byte 110 # DW_AT_linkage_name
437 .ascii "\202>" # DW_FORM_GNU_str_index
439 .ascii "\202>" # DW_FORM_GNU_str_index
440 .byte 58 # DW_AT_decl_file
441 .byte 11 # DW_FORM_data1
442 .byte 59 # DW_AT_decl_line
443 .byte 11 # DW_FORM_data1
444 .byte 73 # DW_AT_type
445 .byte 19 # DW_FORM_ref4
446 .byte 60 # DW_AT_declaration
447 .byte 25 # DW_FORM_flag_present
448 .byte 63 # DW_AT_external
449 .byte 25 # DW_FORM_flag_present
452 .byte 10 # Abbreviation Code
453 .byte 5 # DW_TAG_formal_parameter
454 .byte 0 # DW_CHILDREN_no
455 .byte 73 # DW_AT_type
456 .byte 19 # DW_FORM_ref4
459 .byte 11 # Abbreviation Code
460 .byte 15 # DW_TAG_pointer_type
461 .byte 0 # DW_CHILDREN_no
462 .byte 73 # DW_AT_type
463 .byte 19 # DW_FORM_ref4
467 .section .debug_addr,"",@progbits
475 .section .debug_gnu_pubnames,"",@progbits
476 .long .LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
478 .short 2 # DWARF Version
479 .long .Lcu_begin0 # Offset of Compilation Unit Info
480 .long 48 # Compilation Unit Length
481 .long 25 # DIE offset
482 .byte 32 # Attributes: VARIABLE, EXTERNAL
483 .asciz "x" # External Name
484 .long 40 # DIE offset
485 .byte 32 # Attributes: VARIABLE, EXTERNAL
486 .asciz "y" # External Name
487 .long 51 # DIE offset
488 .byte 48 # Attributes: FUNCTION, EXTERNAL
489 .asciz "use" # External Name
490 .long 84 # DIE offset
491 .byte 48 # Attributes: FUNCTION, EXTERNAL
492 .asciz "main" # External Name
495 .section .debug_gnu_pubtypes,"",@progbits
496 .long .LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
498 .short 2 # DWARF Version
499 .long .Lcu_begin0 # Offset of Compilation Unit Info
500 .long 48 # Compilation Unit Length
501 .long 36 # DIE offset
502 .byte 144 # Attributes: TYPE, STATIC
503 .asciz "int" # External Name
504 .long 163 # DIE offset
505 .byte 144 # Attributes: TYPE, STATIC
506 .asciz "char" # External Name
509 .ident "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)"
510 .section ".note.GNU-stack","",@progbits
512 .section .debug_line,"",@progbits