xref: /llvm-project/bolt/test/X86/Inputs/dwarf5-df-output-dir-same-name-helper.s (revision ce17c6d3bac5e27212a17b4534d09d97ab40c386)
1*ce17c6d3SAlexander Yermolovich# clang++ helper.cpp -g2 -gsplit-dwarf -S -fdebug-compilation-dir=.
2*ce17c6d3SAlexander Yermolovich# Modified assembly so that DW_AT_dwo_name has a partial path.
3*ce17c6d3SAlexander Yermolovich# int foo() { return 0; }
4*ce17c6d3SAlexander Yermolovich	.text
5*ce17c6d3SAlexander Yermolovich	.file	"helper.cpp"
6*ce17c6d3SAlexander Yermolovich	.globl	_Z3foov                         # -- Begin function _Z3foov
7*ce17c6d3SAlexander Yermolovich	.p2align	4, 0x90
8*ce17c6d3SAlexander Yermolovich	.type	_Z3foov,@function
9*ce17c6d3SAlexander Yermolovich_Z3foov:                                # @_Z3foov
10*ce17c6d3SAlexander Yermolovich.Lfunc_begin0:
11*ce17c6d3SAlexander Yermolovich	.file	0 "." "helper.cpp" md5 0xde8d315e6d1f74ad53575cef6507e770
12*ce17c6d3SAlexander Yermolovich	.loc	0 1 0                           # helper.cpp:1:0
13*ce17c6d3SAlexander Yermolovich	.cfi_startproc
14*ce17c6d3SAlexander Yermolovich# %bb.0:                                # %entry
15*ce17c6d3SAlexander Yermolovich	pushq	%rbp
16*ce17c6d3SAlexander Yermolovich	.cfi_def_cfa_offset 16
17*ce17c6d3SAlexander Yermolovich	.cfi_offset %rbp, -16
18*ce17c6d3SAlexander Yermolovich	movq	%rsp, %rbp
19*ce17c6d3SAlexander Yermolovich	.cfi_def_cfa_register %rbp
20*ce17c6d3SAlexander Yermolovich.Ltmp0:
21*ce17c6d3SAlexander Yermolovich	.loc	0 1 13 prologue_end             # helper.cpp:1:13
22*ce17c6d3SAlexander Yermolovich	xorl	%eax, %eax
23*ce17c6d3SAlexander Yermolovich	.loc	0 1 13 epilogue_begin is_stmt 0 # helper.cpp:1:13
24*ce17c6d3SAlexander Yermolovich	popq	%rbp
25*ce17c6d3SAlexander Yermolovich	.cfi_def_cfa %rsp, 8
26*ce17c6d3SAlexander Yermolovich	retq
27*ce17c6d3SAlexander Yermolovich.Ltmp1:
28*ce17c6d3SAlexander Yermolovich.Lfunc_end0:
29*ce17c6d3SAlexander Yermolovich	.size	_Z3foov, .Lfunc_end0-_Z3foov
30*ce17c6d3SAlexander Yermolovich	.cfi_endproc
31*ce17c6d3SAlexander Yermolovich                                        # -- End function
32*ce17c6d3SAlexander Yermolovich	.section	.debug_abbrev,"",@progbits
33*ce17c6d3SAlexander Yermolovich	.byte	1                               # Abbreviation Code
34*ce17c6d3SAlexander Yermolovich	.byte	74                              # DW_TAG_skeleton_unit
35*ce17c6d3SAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
36*ce17c6d3SAlexander Yermolovich	.byte	16                              # DW_AT_stmt_list
37*ce17c6d3SAlexander Yermolovich	.byte	23                              # DW_FORM_sec_offset
38*ce17c6d3SAlexander Yermolovich	.byte	114                             # DW_AT_str_offsets_base
39*ce17c6d3SAlexander Yermolovich	.byte	23                              # DW_FORM_sec_offset
40*ce17c6d3SAlexander Yermolovich	.byte	27                              # DW_AT_comp_dir
41*ce17c6d3SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
42*ce17c6d3SAlexander Yermolovich	.ascii	"\264B"                         # DW_AT_GNU_pubnames
43*ce17c6d3SAlexander Yermolovich	.byte	25                              # DW_FORM_flag_present
44*ce17c6d3SAlexander Yermolovich	.byte	118                             # DW_AT_dwo_name
45*ce17c6d3SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
46*ce17c6d3SAlexander Yermolovich	.byte	17                              # DW_AT_low_pc
47*ce17c6d3SAlexander Yermolovich	.byte	27                              # DW_FORM_addrx
48*ce17c6d3SAlexander Yermolovich	.byte	18                              # DW_AT_high_pc
49*ce17c6d3SAlexander Yermolovich	.byte	6                               # DW_FORM_data4
50*ce17c6d3SAlexander Yermolovich	.byte	115                             # DW_AT_addr_base
51*ce17c6d3SAlexander Yermolovich	.byte	23                              # DW_FORM_sec_offset
52*ce17c6d3SAlexander Yermolovich	.byte	0                               # EOM(1)
53*ce17c6d3SAlexander Yermolovich	.byte	0                               # EOM(2)
54*ce17c6d3SAlexander Yermolovich	.byte	0                               # EOM(3)
55*ce17c6d3SAlexander Yermolovich	.section	.debug_info,"",@progbits
56*ce17c6d3SAlexander Yermolovich.Lcu_begin0:
57*ce17c6d3SAlexander Yermolovich	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
58*ce17c6d3SAlexander Yermolovich.Ldebug_info_start0:
59*ce17c6d3SAlexander Yermolovich	.short	5                               # DWARF version number
60*ce17c6d3SAlexander Yermolovich	.byte	4                               # DWARF Unit Type
61*ce17c6d3SAlexander Yermolovich	.byte	8                               # Address Size (in bytes)
62*ce17c6d3SAlexander Yermolovich	.long	.debug_abbrev                   # Offset Into Abbrev. Section
63*ce17c6d3SAlexander Yermolovich	.quad	-1360665163647638292
64*ce17c6d3SAlexander Yermolovich	.byte	1                               # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit
65*ce17c6d3SAlexander Yermolovich	.long	.Lline_table_start0             # DW_AT_stmt_list
66*ce17c6d3SAlexander Yermolovich	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
67*ce17c6d3SAlexander Yermolovich	.byte	0                               # DW_AT_comp_dir
68*ce17c6d3SAlexander Yermolovich                                        # DW_AT_GNU_pubnames
69*ce17c6d3SAlexander Yermolovich	.byte	1                               # DW_AT_dwo_name
70*ce17c6d3SAlexander Yermolovich	.byte	0                               # DW_AT_low_pc
71*ce17c6d3SAlexander Yermolovich	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
72*ce17c6d3SAlexander Yermolovich	.long	.Laddr_table_base0              # DW_AT_addr_base
73*ce17c6d3SAlexander Yermolovich.Ldebug_info_end0:
74*ce17c6d3SAlexander Yermolovich	.section	.debug_str_offsets,"",@progbits
75*ce17c6d3SAlexander Yermolovich	.long	12                              # Length of String Offsets Set
76*ce17c6d3SAlexander Yermolovich	.short	5
77*ce17c6d3SAlexander Yermolovich	.short	0
78*ce17c6d3SAlexander Yermolovich.Lstr_offsets_base0:
79*ce17c6d3SAlexander Yermolovich	.section	.debug_str,"MS",@progbits,1
80*ce17c6d3SAlexander Yermolovich.Lskel_string0:
81*ce17c6d3SAlexander Yermolovich	.asciz	"."                             # string offset=0
82*ce17c6d3SAlexander Yermolovich.Lskel_string1:
83*ce17c6d3SAlexander Yermolovich	.asciz	"objects/o2/split.dwo"                    # string offset=2 <-- Manually modified.
84*ce17c6d3SAlexander Yermolovich	.section	.debug_str_offsets,"",@progbits
85*ce17c6d3SAlexander Yermolovich	.long	.Lskel_string0
86*ce17c6d3SAlexander Yermolovich	.long	.Lskel_string1
87*ce17c6d3SAlexander Yermolovich	.section	.debug_str_offsets.dwo,"e",@progbits
88*ce17c6d3SAlexander Yermolovich	.long	28                              # Length of String Offsets Set
89*ce17c6d3SAlexander Yermolovich	.short	5
90*ce17c6d3SAlexander Yermolovich	.short	0
91*ce17c6d3SAlexander Yermolovich	.section	.debug_str.dwo,"eMS",@progbits,1
92*ce17c6d3SAlexander Yermolovich.Linfo_string0:
93*ce17c6d3SAlexander Yermolovich	.asciz	"_Z3foov"                       # string offset=0
94*ce17c6d3SAlexander Yermolovich.Linfo_string1:
95*ce17c6d3SAlexander Yermolovich	.asciz	"foo"                           # string offset=8
96*ce17c6d3SAlexander Yermolovich.Linfo_string2:
97*ce17c6d3SAlexander Yermolovich	.asciz	"int"                           # string offset=12
98*ce17c6d3SAlexander Yermolovich.Linfo_string3:
99*ce17c6d3SAlexander Yermolovich	.asciz	"clang version 18.0.0"          # string offset=16
100*ce17c6d3SAlexander Yermolovich.Linfo_string4:
101*ce17c6d3SAlexander Yermolovich	.asciz	"helper.cpp"                    # string offset=37
102*ce17c6d3SAlexander Yermolovich.Linfo_string5:
103*ce17c6d3SAlexander Yermolovich	.asciz	"objects/o2/split.dwo"                    # string offset=48 <-- Manually modified.
104*ce17c6d3SAlexander Yermolovich	.section	.debug_str_offsets.dwo,"e",@progbits
105*ce17c6d3SAlexander Yermolovich	.long	0
106*ce17c6d3SAlexander Yermolovich	.long	8
107*ce17c6d3SAlexander Yermolovich	.long	12
108*ce17c6d3SAlexander Yermolovich	.long	16
109*ce17c6d3SAlexander Yermolovich	.long	37
110*ce17c6d3SAlexander Yermolovich	.long	48
111*ce17c6d3SAlexander Yermolovich	.section	.debug_info.dwo,"e",@progbits
112*ce17c6d3SAlexander Yermolovich	.long	.Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
113*ce17c6d3SAlexander Yermolovich.Ldebug_info_dwo_start0:
114*ce17c6d3SAlexander Yermolovich	.short	5                               # DWARF version number
115*ce17c6d3SAlexander Yermolovich	.byte	5                               # DWARF Unit Type
116*ce17c6d3SAlexander Yermolovich	.byte	8                               # Address Size (in bytes)
117*ce17c6d3SAlexander Yermolovich	.long	0                               # Offset Into Abbrev. Section
118*ce17c6d3SAlexander Yermolovich	.quad	-1360665163647638292
119*ce17c6d3SAlexander Yermolovich	.byte	1                               # Abbrev [1] 0x14:0x1b DW_TAG_compile_unit
120*ce17c6d3SAlexander Yermolovich	.byte	3                               # DW_AT_producer
121*ce17c6d3SAlexander Yermolovich	.short	33                              # DW_AT_language
122*ce17c6d3SAlexander Yermolovich	.byte	4                               # DW_AT_name
123*ce17c6d3SAlexander Yermolovich	.byte	5                               # DW_AT_dwo_name
124*ce17c6d3SAlexander Yermolovich	.byte	2                               # Abbrev [2] 0x1a:0x10 DW_TAG_subprogram
125*ce17c6d3SAlexander Yermolovich	.byte	0                               # DW_AT_low_pc
126*ce17c6d3SAlexander Yermolovich	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
127*ce17c6d3SAlexander Yermolovich	.byte	1                               # DW_AT_frame_base
128*ce17c6d3SAlexander Yermolovich	.byte	86
129*ce17c6d3SAlexander Yermolovich	.byte	0                               # DW_AT_linkage_name
130*ce17c6d3SAlexander Yermolovich	.byte	1                               # DW_AT_name
131*ce17c6d3SAlexander Yermolovich	.byte	0                               # DW_AT_decl_file
132*ce17c6d3SAlexander Yermolovich	.byte	1                               # DW_AT_decl_line
133*ce17c6d3SAlexander Yermolovich	.long	42                              # DW_AT_type
134*ce17c6d3SAlexander Yermolovich                                        # DW_AT_external
135*ce17c6d3SAlexander Yermolovich	.byte	3                               # Abbrev [3] 0x2a:0x4 DW_TAG_base_type
136*ce17c6d3SAlexander Yermolovich	.byte	2                               # DW_AT_name
137*ce17c6d3SAlexander Yermolovich	.byte	5                               # DW_AT_encoding
138*ce17c6d3SAlexander Yermolovich	.byte	4                               # DW_AT_byte_size
139*ce17c6d3SAlexander Yermolovich	.byte	0                               # End Of Children Mark
140*ce17c6d3SAlexander Yermolovich.Ldebug_info_dwo_end0:
141*ce17c6d3SAlexander Yermolovich	.section	.debug_abbrev.dwo,"e",@progbits
142*ce17c6d3SAlexander Yermolovich	.byte	1                               # Abbreviation Code
143*ce17c6d3SAlexander Yermolovich	.byte	17                              # DW_TAG_compile_unit
144*ce17c6d3SAlexander Yermolovich	.byte	1                               # DW_CHILDREN_yes
145*ce17c6d3SAlexander Yermolovich	.byte	37                              # DW_AT_producer
146*ce17c6d3SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
147*ce17c6d3SAlexander Yermolovich	.byte	19                              # DW_AT_language
148*ce17c6d3SAlexander Yermolovich	.byte	5                               # DW_FORM_data2
149*ce17c6d3SAlexander Yermolovich	.byte	3                               # DW_AT_name
150*ce17c6d3SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
151*ce17c6d3SAlexander Yermolovich	.byte	118                             # DW_AT_dwo_name
152*ce17c6d3SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
153*ce17c6d3SAlexander Yermolovich	.byte	0                               # EOM(1)
154*ce17c6d3SAlexander Yermolovich	.byte	0                               # EOM(2)
155*ce17c6d3SAlexander Yermolovich	.byte	2                               # Abbreviation Code
156*ce17c6d3SAlexander Yermolovich	.byte	46                              # DW_TAG_subprogram
157*ce17c6d3SAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
158*ce17c6d3SAlexander Yermolovich	.byte	17                              # DW_AT_low_pc
159*ce17c6d3SAlexander Yermolovich	.byte	27                              # DW_FORM_addrx
160*ce17c6d3SAlexander Yermolovich	.byte	18                              # DW_AT_high_pc
161*ce17c6d3SAlexander Yermolovich	.byte	6                               # DW_FORM_data4
162*ce17c6d3SAlexander Yermolovich	.byte	64                              # DW_AT_frame_base
163*ce17c6d3SAlexander Yermolovich	.byte	24                              # DW_FORM_exprloc
164*ce17c6d3SAlexander Yermolovich	.byte	110                             # DW_AT_linkage_name
165*ce17c6d3SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
166*ce17c6d3SAlexander Yermolovich	.byte	3                               # DW_AT_name
167*ce17c6d3SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
168*ce17c6d3SAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
169*ce17c6d3SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
170*ce17c6d3SAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
171*ce17c6d3SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
172*ce17c6d3SAlexander Yermolovich	.byte	73                              # DW_AT_type
173*ce17c6d3SAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
174*ce17c6d3SAlexander Yermolovich	.byte	63                              # DW_AT_external
175*ce17c6d3SAlexander Yermolovich	.byte	25                              # DW_FORM_flag_present
176*ce17c6d3SAlexander Yermolovich	.byte	0                               # EOM(1)
177*ce17c6d3SAlexander Yermolovich	.byte	0                               # EOM(2)
178*ce17c6d3SAlexander Yermolovich	.byte	3                               # Abbreviation Code
179*ce17c6d3SAlexander Yermolovich	.byte	36                              # DW_TAG_base_type
180*ce17c6d3SAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
181*ce17c6d3SAlexander Yermolovich	.byte	3                               # DW_AT_name
182*ce17c6d3SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
183*ce17c6d3SAlexander Yermolovich	.byte	62                              # DW_AT_encoding
184*ce17c6d3SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
185*ce17c6d3SAlexander Yermolovich	.byte	11                              # DW_AT_byte_size
186*ce17c6d3SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
187*ce17c6d3SAlexander Yermolovich	.byte	0                               # EOM(1)
188*ce17c6d3SAlexander Yermolovich	.byte	0                               # EOM(2)
189*ce17c6d3SAlexander Yermolovich	.byte	0                               # EOM(3)
190*ce17c6d3SAlexander Yermolovich	.section	.debug_addr,"",@progbits
191*ce17c6d3SAlexander Yermolovich	.long	.Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
192*ce17c6d3SAlexander Yermolovich.Ldebug_addr_start0:
193*ce17c6d3SAlexander Yermolovich	.short	5                               # DWARF version number
194*ce17c6d3SAlexander Yermolovich	.byte	8                               # Address size
195*ce17c6d3SAlexander Yermolovich	.byte	0                               # Segment selector size
196*ce17c6d3SAlexander Yermolovich.Laddr_table_base0:
197*ce17c6d3SAlexander Yermolovich	.quad	.Lfunc_begin0
198*ce17c6d3SAlexander Yermolovich.Ldebug_addr_end0:
199*ce17c6d3SAlexander Yermolovich	.section	.debug_gnu_pubnames,"",@progbits
200*ce17c6d3SAlexander Yermolovich	.long	.LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
201*ce17c6d3SAlexander Yermolovich.LpubNames_start0:
202*ce17c6d3SAlexander Yermolovich	.short	2                               # DWARF Version
203*ce17c6d3SAlexander Yermolovich	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
204*ce17c6d3SAlexander Yermolovich	.long	40                              # Compilation Unit Length
205*ce17c6d3SAlexander Yermolovich	.long	26                              # DIE offset
206*ce17c6d3SAlexander Yermolovich	.byte	48                              # Attributes: FUNCTION, EXTERNAL
207*ce17c6d3SAlexander Yermolovich	.asciz	"foo"                           # External Name
208*ce17c6d3SAlexander Yermolovich	.long	0                               # End Mark
209*ce17c6d3SAlexander Yermolovich.LpubNames_end0:
210*ce17c6d3SAlexander Yermolovich	.section	.debug_gnu_pubtypes,"",@progbits
211*ce17c6d3SAlexander Yermolovich	.long	.LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
212*ce17c6d3SAlexander Yermolovich.LpubTypes_start0:
213*ce17c6d3SAlexander Yermolovich	.short	2                               # DWARF Version
214*ce17c6d3SAlexander Yermolovich	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
215*ce17c6d3SAlexander Yermolovich	.long	40                              # Compilation Unit Length
216*ce17c6d3SAlexander Yermolovich	.long	42                              # DIE offset
217*ce17c6d3SAlexander Yermolovich	.byte	144                             # Attributes: TYPE, STATIC
218*ce17c6d3SAlexander Yermolovich	.asciz	"int"                           # External Name
219*ce17c6d3SAlexander Yermolovich	.long	0                               # End Mark
220*ce17c6d3SAlexander Yermolovich.LpubTypes_end0:
221*ce17c6d3SAlexander Yermolovich	.ident	"clang version 18.0.0"
222*ce17c6d3SAlexander Yermolovich	.section	".note.GNU-stack","",@progbits
223*ce17c6d3SAlexander Yermolovich	.addrsig
224*ce17c6d3SAlexander Yermolovich	.section	.debug_line,"",@progbits
225*ce17c6d3SAlexander Yermolovich.Lline_table_start0:
226