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