xref: /llvm-project/bolt/test/X86/Inputs/dwarf5-types-no-cu.s (revision bf2b035e58e00a28412870d68b9df2309efa2b28)
1# clang++ helper.cpp -g2 -gdwarf-5 -gno-pubnames -fdebug-types-section -S -o helperTypes.s
2# struct Foo1 {
3#   char a1;
4#   char a2;
5#   char a3;
6# };
7#
8# struct Foo2 {
9#   int b1;
10#   int b2;
11# };
12#
13# Foo1 f1;
14# Foo2 f2;
15
16# Manually removed Compile Unit .debug_info section.
17
18	.text
19	.file	"helper.cpp"
20	.file	0 "/home" "helper.cpp" md5 0xd58ef77d520bf2e6491a2e387a3501f1
21	.section	.debug_info,"G",@progbits,5391472263833448044,comdat
22.Ltu_begin0:
23	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
24.Ldebug_info_start0:
25	.short	5                               # DWARF version number
26	.byte	2                               # DWARF Unit Type
27	.byte	8                               # Address Size (in bytes)
28	.long	.debug_abbrev                   # Offset Into Abbrev. Section
29	.quad	5391472263833448044             # Type Signature
30	.long	35                              # Type DIE Offset
31	.byte	1                               # Abbrev [1] 0x18:0x32 DW_TAG_type_unit
32	.short	33                              # DW_AT_language
33	.long	.Lline_table_start0             # DW_AT_stmt_list
34	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
35	.byte	2                               # Abbrev [2] 0x23:0x22 DW_TAG_structure_type
36	.byte	5                               # DW_AT_calling_convention
37	.byte	8                               # DW_AT_name
38	.byte	3                               # DW_AT_byte_size
39	.byte	0                               # DW_AT_decl_file
40	.byte	1                               # DW_AT_decl_line
41	.byte	3                               # Abbrev [3] 0x29:0x9 DW_TAG_member
42	.byte	4                               # DW_AT_name
43	.long	69                              # DW_AT_type
44	.byte	0                               # DW_AT_decl_file
45	.byte	2                               # DW_AT_decl_line
46	.byte	0                               # DW_AT_data_member_location
47	.byte	3                               # Abbrev [3] 0x32:0x9 DW_TAG_member
48	.byte	6                               # DW_AT_name
49	.long	69                              # DW_AT_type
50	.byte	0                               # DW_AT_decl_file
51	.byte	3                               # DW_AT_decl_line
52	.byte	1                               # DW_AT_data_member_location
53	.byte	3                               # Abbrev [3] 0x3b:0x9 DW_TAG_member
54	.byte	7                               # DW_AT_name
55	.long	69                              # DW_AT_type
56	.byte	0                               # DW_AT_decl_file
57	.byte	4                               # DW_AT_decl_line
58	.byte	2                               # DW_AT_data_member_location
59	.byte	0                               # End Of Children Mark
60	.byte	4                               # Abbrev [4] 0x45:0x4 DW_TAG_base_type
61	.byte	5                               # DW_AT_name
62	.byte	6                               # DW_AT_encoding
63	.byte	1                               # DW_AT_byte_size
64	.byte	0                               # End Of Children Mark
65.Ldebug_info_end0:
66	.section	.debug_info,"G",@progbits,5322170643381124694,comdat
67.Ltu_begin1:
68	.long	.Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit
69.Ldebug_info_start1:
70	.short	5                               # DWARF version number
71	.byte	2                               # DWARF Unit Type
72	.byte	8                               # Address Size (in bytes)
73	.long	.debug_abbrev                   # Offset Into Abbrev. Section
74	.quad	5322170643381124694             # Type Signature
75	.long	35                              # Type DIE Offset
76	.byte	1                               # Abbrev [1] 0x18:0x29 DW_TAG_type_unit
77	.short	33                              # DW_AT_language
78	.long	.Lline_table_start0             # DW_AT_stmt_list
79	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
80	.byte	2                               # Abbrev [2] 0x23:0x19 DW_TAG_structure_type
81	.byte	5                               # DW_AT_calling_convention
82	.byte	13                              # DW_AT_name
83	.byte	8                               # DW_AT_byte_size
84	.byte	0                               # DW_AT_decl_file
85	.byte	7                               # DW_AT_decl_line
86	.byte	3                               # Abbrev [3] 0x29:0x9 DW_TAG_member
87	.byte	10                              # DW_AT_name
88	.long	60                              # DW_AT_type
89	.byte	0                               # DW_AT_decl_file
90	.byte	8                               # DW_AT_decl_line
91	.byte	0                               # DW_AT_data_member_location
92	.byte	3                               # Abbrev [3] 0x32:0x9 DW_TAG_member
93	.byte	12                              # DW_AT_name
94	.long	60                              # DW_AT_type
95	.byte	0                               # DW_AT_decl_file
96	.byte	9                               # DW_AT_decl_line
97	.byte	4                               # DW_AT_data_member_location
98	.byte	0                               # End Of Children Mark
99	.byte	4                               # Abbrev [4] 0x3c:0x4 DW_TAG_base_type
100	.byte	11                              # DW_AT_name
101	.byte	5                               # DW_AT_encoding
102	.byte	4                               # DW_AT_byte_size
103	.byte	0                               # End Of Children Mark
104.Ldebug_info_end1:
105	.type	f1,@object                      # @f1
106	.bss
107	.globl	f1
108f1:
109	.zero	3
110	.size	f1, 3
111
112	.type	f2,@object                      # @f2
113	.globl	f2
114	.p2align	2, 0x0
115f2:
116	.zero	8
117	.size	f2, 8
118
119	.section	.debug_abbrev,"",@progbits
120	.byte	1                               # Abbreviation Code
121	.byte	65                              # DW_TAG_type_unit
122	.byte	1                               # DW_CHILDREN_yes
123	.byte	19                              # DW_AT_language
124	.byte	5                               # DW_FORM_data2
125	.byte	16                              # DW_AT_stmt_list
126	.byte	23                              # DW_FORM_sec_offset
127	.byte	114                             # DW_AT_str_offsets_base
128	.byte	23                              # DW_FORM_sec_offset
129	.byte	0                               # EOM(1)
130	.byte	0                               # EOM(2)
131	.byte	2                               # Abbreviation Code
132	.byte	19                              # DW_TAG_structure_type
133	.byte	1                               # DW_CHILDREN_yes
134	.byte	54                              # DW_AT_calling_convention
135	.byte	11                              # DW_FORM_data1
136	.byte	3                               # DW_AT_name
137	.byte	37                              # DW_FORM_strx1
138	.byte	11                              # DW_AT_byte_size
139	.byte	11                              # DW_FORM_data1
140	.byte	58                              # DW_AT_decl_file
141	.byte	11                              # DW_FORM_data1
142	.byte	59                              # DW_AT_decl_line
143	.byte	11                              # DW_FORM_data1
144	.byte	0                               # EOM(1)
145	.byte	0                               # EOM(2)
146	.byte	3                               # Abbreviation Code
147	.byte	13                              # DW_TAG_member
148	.byte	0                               # DW_CHILDREN_no
149	.byte	3                               # DW_AT_name
150	.byte	37                              # DW_FORM_strx1
151	.byte	73                              # DW_AT_type
152	.byte	19                              # DW_FORM_ref4
153	.byte	58                              # DW_AT_decl_file
154	.byte	11                              # DW_FORM_data1
155	.byte	59                              # DW_AT_decl_line
156	.byte	11                              # DW_FORM_data1
157	.byte	56                              # DW_AT_data_member_location
158	.byte	11                              # DW_FORM_data1
159	.byte	0                               # EOM(1)
160	.byte	0                               # EOM(2)
161	.byte	4                               # Abbreviation Code
162	.byte	36                              # DW_TAG_base_type
163	.byte	0                               # DW_CHILDREN_no
164	.byte	3                               # DW_AT_name
165	.byte	37                              # DW_FORM_strx1
166	.byte	62                              # DW_AT_encoding
167	.byte	11                              # DW_FORM_data1
168	.byte	11                              # DW_AT_byte_size
169	.byte	11                              # DW_FORM_data1
170	.byte	0                               # EOM(1)
171	.byte	0                               # EOM(2)
172	.byte	5                               # Abbreviation Code
173	.byte	17                              # DW_TAG_compile_unit
174	.byte	1                               # DW_CHILDREN_yes
175	.byte	37                              # DW_AT_producer
176	.byte	37                              # DW_FORM_strx1
177	.byte	19                              # DW_AT_language
178	.byte	5                               # DW_FORM_data2
179	.byte	3                               # DW_AT_name
180	.byte	37                              # DW_FORM_strx1
181	.byte	114                             # DW_AT_str_offsets_base
182	.byte	23                              # DW_FORM_sec_offset
183	.byte	16                              # DW_AT_stmt_list
184	.byte	23                              # DW_FORM_sec_offset
185	.byte	27                              # DW_AT_comp_dir
186	.byte	37                              # DW_FORM_strx1
187	.byte	115                             # DW_AT_addr_base
188	.byte	23                              # DW_FORM_sec_offset
189	.byte	0                               # EOM(1)
190	.byte	0                               # EOM(2)
191	.byte	6                               # Abbreviation Code
192	.byte	52                              # DW_TAG_variable
193	.byte	0                               # DW_CHILDREN_no
194	.byte	3                               # DW_AT_name
195	.byte	37                              # DW_FORM_strx1
196	.byte	73                              # DW_AT_type
197	.byte	19                              # DW_FORM_ref4
198	.byte	63                              # DW_AT_external
199	.byte	25                              # DW_FORM_flag_present
200	.byte	58                              # DW_AT_decl_file
201	.byte	11                              # DW_FORM_data1
202	.byte	59                              # DW_AT_decl_line
203	.byte	11                              # DW_FORM_data1
204	.byte	2                               # DW_AT_location
205	.byte	24                              # DW_FORM_exprloc
206	.byte	0                               # EOM(1)
207	.byte	0                               # EOM(2)
208	.byte	7                               # Abbreviation Code
209	.byte	19                              # DW_TAG_structure_type
210	.byte	0                               # DW_CHILDREN_no
211	.byte	60                              # DW_AT_declaration
212	.byte	25                              # DW_FORM_flag_present
213	.byte	105                             # DW_AT_signature
214	.byte	32                              # DW_FORM_ref_sig8
215	.byte	0                               # EOM(1)
216	.byte	0                               # EOM(2)
217	.byte	0                               # EOM(3)
218	.section	.debug_str_offsets,"",@progbits
219	.long	60                              # Length of String Offsets Set
220	.short	5
221	.short	0
222.Lstr_offsets_base0:
223	.section	.debug_str,"MS",@progbits,1
224.Linfo_string0:
225	.asciz	"clang version 18.0.0git (git@github.com:llvm/llvm-project.git 44dc1e0baae7c4b8a02ba06dcf396d3d452aa873)" # string offset=0
226.Linfo_string1:
227	.asciz	"helper.cpp"                    # string offset=104
228.Linfo_string2:
229	.asciz	"/home" # string offset=115
230.Linfo_string3:
231	.asciz	"f1"                            # string offset=153
232.Linfo_string4:
233	.asciz	"a1"                            # string offset=156
234.Linfo_string5:
235	.asciz	"char"                          # string offset=159
236.Linfo_string6:
237	.asciz	"a2"                            # string offset=164
238.Linfo_string7:
239	.asciz	"a3"                            # string offset=167
240.Linfo_string8:
241	.asciz	"Foo1"                          # string offset=170
242.Linfo_string9:
243	.asciz	"f2"                            # string offset=175
244.Linfo_string10:
245	.asciz	"b1"                            # string offset=178
246.Linfo_string11:
247	.asciz	"int"                           # string offset=181
248.Linfo_string12:
249	.asciz	"b2"                            # string offset=185
250.Linfo_string13:
251	.asciz	"Foo2"                          # string offset=188
252	.section	.debug_str_offsets,"",@progbits
253	.long	.Linfo_string0
254	.long	.Linfo_string1
255	.long	.Linfo_string2
256	.long	.Linfo_string3
257	.long	.Linfo_string4
258	.long	.Linfo_string5
259	.long	.Linfo_string6
260	.long	.Linfo_string7
261	.long	.Linfo_string8
262	.long	.Linfo_string9
263	.long	.Linfo_string10
264	.long	.Linfo_string11
265	.long	.Linfo_string12
266	.long	.Linfo_string13
267	.section	.debug_addr,"",@progbits
268	.long	.Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
269.Ldebug_addr_start0:
270	.short	5                               # DWARF version number
271	.byte	8                               # Address size
272	.byte	0                               # Segment selector size
273.Laddr_table_base0:
274	.quad	f1
275	.quad	f2
276.Ldebug_addr_end0:
277	.ident	"clang version 18.0.0git (git@github.com:llvm/llvm-project.git 44dc1e0baae7c4b8a02ba06dcf396d3d452aa873)"
278	.section	".note.GNU-stack","",@progbits
279	.addrsig
280	.section	.debug_line,"",@progbits
281.Lline_table_start0:
282