xref: /llvm-project/bolt/test/X86/Inputs/dwarf4-df-no-base.s (revision 790b75ea3646f98f78ab8da6d8237ea36d19c580)
1# int foo() { return 0; }
2# int main() { return foo(); }
3# clang++ -ffunction-sections -g2 -gdwarf-4 -gsplit-dwarf -S main.cpp
4
5	.text
6	.file	"main.cpp"
7	.section	.text._Z3foov,"ax",@progbits
8	.globl	_Z3foov                         # -- Begin function _Z3foov
9	.p2align	4, 0x90
10	.type	_Z3foov,@function
11_Z3foov:                                # @_Z3foov
12.Lfunc_begin0:
13	.file	1 "." "main.cpp"
14	.loc	1 1 0                           # main.cpp:1:0
15	.cfi_startproc
16# %bb.0:                                # %entry
17	pushq	%rbp
18	.cfi_def_cfa_offset 16
19	.cfi_offset %rbp, -16
20	movq	%rsp, %rbp
21	.cfi_def_cfa_register %rbp
22.Ltmp0:
23	.loc	1 1 13 prologue_end             # main.cpp:1:13
24	xorl	%eax, %eax
25	.loc	1 1 13 epilogue_begin is_stmt 0 # main.cpp:1:13
26	popq	%rbp
27	.cfi_def_cfa %rsp, 8
28	retq
29.Ltmp1:
30.Lfunc_end0:
31	.size	_Z3foov, .Lfunc_end0-_Z3foov
32	.cfi_endproc
33                                        # -- End function
34	.section	.text.main,"ax",@progbits
35	.globl	main                            # -- Begin function main
36	.p2align	4, 0x90
37	.type	main,@function
38main:                                   # @main
39.Lfunc_begin1:
40	.loc	1 2 0 is_stmt 1                 # main.cpp:2:0
41	.cfi_startproc
42# %bb.0:                                # %entry
43	pushq	%rbp
44	.cfi_def_cfa_offset 16
45	.cfi_offset %rbp, -16
46	movq	%rsp, %rbp
47	.cfi_def_cfa_register %rbp
48	subq	$16, %rsp
49	movl	$0, -4(%rbp)
50.Ltmp2:
51	.loc	1 2 21 prologue_end             # main.cpp:2:21
52	callq	_Z3foov
53	.loc	1 2 14 epilogue_begin is_stmt 0 # main.cpp:2:14
54	addq	$16, %rsp
55	popq	%rbp
56	.cfi_def_cfa %rsp, 8
57	retq
58.Ltmp3:
59.Lfunc_end1:
60	.size	main, .Lfunc_end1-main
61	.cfi_endproc
62                                        # -- End function
63	.section	.debug_abbrev,"",@progbits
64	.byte	1                               # Abbreviation Code
65	.byte	17                              # DW_TAG_compile_unit
66	.byte	0                               # DW_CHILDREN_no
67	.byte	16                              # DW_AT_stmt_list
68	.byte	23                              # DW_FORM_sec_offset
69	.byte	27                              # DW_AT_comp_dir
70	.byte	14                              # DW_FORM_strp
71	.ascii	"\264B"                         # DW_AT_GNU_pubnames
72	.byte	25                              # DW_FORM_flag_present
73	.ascii	"\260B"                         # DW_AT_GNU_dwo_name
74	.byte	14                              # DW_FORM_strp
75	.ascii	"\261B"                         # DW_AT_GNU_dwo_id
76	.byte	7                               # DW_FORM_data8
77	.byte	17                              # DW_AT_low_pc
78	.byte	1                               # DW_FORM_addr
79	.byte	85                              # DW_AT_ranges
80	.byte	23                              # DW_FORM_sec_offset
81	.ascii	"\263B"                         # DW_AT_GNU_addr_base
82	.byte	23                              # DW_FORM_sec_offset
83	.byte	0                               # EOM(1)
84	.byte	0                               # EOM(2)
85	.byte	0                               # EOM(3)
86	.section	.debug_info,"",@progbits
87.Lcu_begin0:
88	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
89.Ldebug_info_start0:
90	.short	4                               # DWARF version number
91	.long	.debug_abbrev                   # Offset Into Abbrev. Section
92	.byte	8                               # Address Size (in bytes)
93	.byte	1                               # Abbrev [1] 0xb:0x25 DW_TAG_compile_unit
94	.long	.Lline_table_start0             # DW_AT_stmt_list
95	.long	.Lskel_string0                  # DW_AT_comp_dir
96                                        # DW_AT_GNU_pubnames
97	.long	.Lskel_string1                  # DW_AT_GNU_dwo_name
98	.quad	-252790171939032967             # DW_AT_GNU_dwo_id
99	.quad	0                               # DW_AT_low_pc
100	.long	.Ldebug_ranges0                 # DW_AT_ranges
101	.long	.Laddr_table_base0              # DW_AT_GNU_addr_base
102.Ldebug_info_end0:
103	.section	.debug_ranges,"",@progbits
104.Ldebug_ranges0:
105	.quad	.Lfunc_begin0
106	.quad	.Lfunc_end0
107	.quad	.Lfunc_begin1
108	.quad	.Lfunc_end1
109	.quad	0
110	.quad	0
111	.section	.debug_str,"MS",@progbits,1
112.Lskel_string0:
113	.asciz	"." # string offset=0
114.Lskel_string1:
115	.asciz	"main.dwo"                      # string offset=58
116	.section	.debug_str.dwo,"eMS",@progbits,1
117.Linfo_string0:
118	.asciz	"_Z3foov"                       # string offset=0
119.Linfo_string1:
120	.asciz	"foo"                           # string offset=8
121.Linfo_string2:
122	.asciz	"int"                           # string offset=12
123.Linfo_string3:
124	.asciz	"main"                          # string offset=16
125.Linfo_string4:
126	.asciz	"clang version 17.0.0 (https://github.com/llvm/llvm-project.git 640e07c49037cca41a1bfbeb916b569d8c950aea)" # string offset=21
127.Linfo_string5:
128	.asciz	"main.cpp"                      # string offset=126
129.Linfo_string6:
130	.asciz	"main.dwo"                      # string offset=135
131	.section	.debug_str_offsets.dwo,"e",@progbits
132	.long	0
133	.long	8
134	.long	12
135	.long	16
136	.long	21
137	.long	126
138	.long	135
139	.section	.debug_info.dwo,"e",@progbits
140	.long	.Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
141.Ldebug_info_dwo_start0:
142	.short	4                               # DWARF version number
143	.long	0                               # Offset Into Abbrev. Section
144	.byte	8                               # Address Size (in bytes)
145	.byte	1                               # Abbrev [1] 0xb:0x32 DW_TAG_compile_unit
146	.byte	4                               # DW_AT_producer
147	.short	33                              # DW_AT_language
148	.byte	5                               # DW_AT_name
149	.byte	6                               # DW_AT_GNU_dwo_name
150	.quad	-252790171939032967             # DW_AT_GNU_dwo_id
151	.byte	2                               # Abbrev [2] 0x19:0x10 DW_TAG_subprogram
152	.byte	0                               # DW_AT_low_pc
153	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
154	.byte	1                               # DW_AT_frame_base
155	.byte	86
156	.byte	0                               # DW_AT_linkage_name
157	.byte	1                               # DW_AT_name
158	.byte	1                               # DW_AT_decl_file
159	.byte	1                               # DW_AT_decl_line
160	.long	56                              # DW_AT_type
161                                        # DW_AT_external
162	.byte	3                               # Abbrev [3] 0x29:0xf DW_TAG_subprogram
163	.byte	1                               # DW_AT_low_pc
164	.long	.Lfunc_end1-.Lfunc_begin1       # DW_AT_high_pc
165	.byte	1                               # DW_AT_frame_base
166	.byte	86
167	.byte	3                               # DW_AT_name
168	.byte	1                               # DW_AT_decl_file
169	.byte	2                               # DW_AT_decl_line
170	.long	56                              # DW_AT_type
171                                        # DW_AT_external
172	.byte	4                               # Abbrev [4] 0x38:0x4 DW_TAG_base_type
173	.byte	2                               # DW_AT_name
174	.byte	5                               # DW_AT_encoding
175	.byte	4                               # DW_AT_byte_size
176	.byte	0                               # End Of Children Mark
177.Ldebug_info_dwo_end0:
178	.section	.debug_abbrev.dwo,"e",@progbits
179	.byte	1                               # Abbreviation Code
180	.byte	17                              # DW_TAG_compile_unit
181	.byte	1                               # DW_CHILDREN_yes
182	.byte	37                              # DW_AT_producer
183	.ascii	"\202>"                         # DW_FORM_GNU_str_index
184	.byte	19                              # DW_AT_language
185	.byte	5                               # DW_FORM_data2
186	.byte	3                               # DW_AT_name
187	.ascii	"\202>"                         # DW_FORM_GNU_str_index
188	.ascii	"\260B"                         # DW_AT_GNU_dwo_name
189	.ascii	"\202>"                         # DW_FORM_GNU_str_index
190	.ascii	"\261B"                         # DW_AT_GNU_dwo_id
191	.byte	7                               # DW_FORM_data8
192	.byte	0                               # EOM(1)
193	.byte	0                               # EOM(2)
194	.byte	2                               # Abbreviation Code
195	.byte	46                              # DW_TAG_subprogram
196	.byte	0                               # DW_CHILDREN_no
197	.byte	17                              # DW_AT_low_pc
198	.ascii	"\201>"                         # DW_FORM_GNU_addr_index
199	.byte	18                              # DW_AT_high_pc
200	.byte	6                               # DW_FORM_data4
201	.byte	64                              # DW_AT_frame_base
202	.byte	24                              # DW_FORM_exprloc
203	.byte	110                             # DW_AT_linkage_name
204	.ascii	"\202>"                         # DW_FORM_GNU_str_index
205	.byte	3                               # DW_AT_name
206	.ascii	"\202>"                         # DW_FORM_GNU_str_index
207	.byte	58                              # DW_AT_decl_file
208	.byte	11                              # DW_FORM_data1
209	.byte	59                              # DW_AT_decl_line
210	.byte	11                              # DW_FORM_data1
211	.byte	73                              # DW_AT_type
212	.byte	19                              # DW_FORM_ref4
213	.byte	63                              # DW_AT_external
214	.byte	25                              # DW_FORM_flag_present
215	.byte	0                               # EOM(1)
216	.byte	0                               # EOM(2)
217	.byte	3                               # Abbreviation Code
218	.byte	46                              # DW_TAG_subprogram
219	.byte	0                               # DW_CHILDREN_no
220	.byte	17                              # DW_AT_low_pc
221	.ascii	"\201>"                         # DW_FORM_GNU_addr_index
222	.byte	18                              # DW_AT_high_pc
223	.byte	6                               # DW_FORM_data4
224	.byte	64                              # DW_AT_frame_base
225	.byte	24                              # DW_FORM_exprloc
226	.byte	3                               # DW_AT_name
227	.ascii	"\202>"                         # DW_FORM_GNU_str_index
228	.byte	58                              # DW_AT_decl_file
229	.byte	11                              # DW_FORM_data1
230	.byte	59                              # DW_AT_decl_line
231	.byte	11                              # DW_FORM_data1
232	.byte	73                              # DW_AT_type
233	.byte	19                              # DW_FORM_ref4
234	.byte	63                              # DW_AT_external
235	.byte	25                              # DW_FORM_flag_present
236	.byte	0                               # EOM(1)
237	.byte	0                               # EOM(2)
238	.byte	4                               # Abbreviation Code
239	.byte	36                              # DW_TAG_base_type
240	.byte	0                               # DW_CHILDREN_no
241	.byte	3                               # DW_AT_name
242	.ascii	"\202>"                         # DW_FORM_GNU_str_index
243	.byte	62                              # DW_AT_encoding
244	.byte	11                              # DW_FORM_data1
245	.byte	11                              # DW_AT_byte_size
246	.byte	11                              # DW_FORM_data1
247	.byte	0                               # EOM(1)
248	.byte	0                               # EOM(2)
249	.byte	0                               # EOM(3)
250	.section	.debug_addr,"",@progbits
251.Laddr_table_base0:
252	.quad	.Lfunc_begin0
253	.quad	.Lfunc_begin1
254	.section	.debug_gnu_pubnames,"",@progbits
255	.long	.LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
256.LpubNames_start0:
257	.short	2                               # DWARF Version
258	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
259	.long	48                              # Compilation Unit Length
260	.long	41                              # DIE offset
261	.byte	48                              # Attributes: FUNCTION, EXTERNAL
262	.asciz	"main"                          # External Name
263	.long	25                              # DIE offset
264	.byte	48                              # Attributes: FUNCTION, EXTERNAL
265	.asciz	"foo"                           # External Name
266	.long	0                               # End Mark
267.LpubNames_end0:
268	.section	.debug_gnu_pubtypes,"",@progbits
269	.long	.LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
270.LpubTypes_start0:
271	.short	2                               # DWARF Version
272	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
273	.long	48                              # Compilation Unit Length
274	.long	56                              # DIE offset
275	.byte	144                             # Attributes: TYPE, STATIC
276	.asciz	"int"                           # External Name
277	.long	0                               # End Mark
278.LpubTypes_end0:
279	.ident	"clang version 17.0.0 (https://github.com/llvm/llvm-project.git 640e07c49037cca41a1bfbeb916b569d8c950aea)"
280	.section	".note.GNU-stack","",@progbits
281	.addrsig
282	.addrsig_sym _Z3foov
283	.section	.debug_line,"",@progbits
284.Lline_table_start0:
285