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