xref: /llvm-project/bolt/test/X86/dwarf5-debug-names-union.test (revision 50c0e679b9e23787a4fc5a6a7c04571e4b0bb3f1)
1*50c0e679SAlexander Yermolovich# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %s   -o %tmain.o
2*50c0e679SAlexander Yermolovich# RUN: %clang %cflags -gdwarf-5 %tmain.o -o %tmain.exe
3*50c0e679SAlexander Yermolovich# RUN: llvm-bolt %tmain.exe -o %tmain.exe.bolt --update-debug-sections
4*50c0e679SAlexander Yermolovich# RUN: llvm-dwarfdump --debug-names %tmain.exe.bolt > %tlog.txt
5*50c0e679SAlexander Yermolovich# RUN: cat %tlog.txt | FileCheck -check-prefix=BOLT %s
6*50c0e679SAlexander Yermolovich
7*50c0e679SAlexander Yermolovich## This test checks that bolt correctly generates entry for DW_TAG_union_type for .debug_name section.
8*50c0e679SAlexander Yermolovich
9*50c0e679SAlexander Yermolovich# BOLT:       Abbreviations [
10*50c0e679SAlexander Yermolovich# BOLT-NEXT:   Abbreviation [[ABBREV1:0x[0-9a-f]*]] {
11*50c0e679SAlexander Yermolovich# BOLT-NEXT:     Tag: DW_TAG_subprogram
12*50c0e679SAlexander Yermolovich# BOLT-NEXT:     DW_IDX_die_offset: DW_FORM_ref4
13*50c0e679SAlexander Yermolovich# BOLT-NEXT:     DW_IDX_parent: DW_FORM_flag_present
14*50c0e679SAlexander Yermolovich# BOLT-NEXT:   }
15*50c0e679SAlexander Yermolovich# BOLT-NEXT:   Abbreviation [[ABBREV2:0x[0-9a-f]*]] {
16*50c0e679SAlexander Yermolovich# BOLT-NEXT:     Tag: DW_TAG_base_type
17*50c0e679SAlexander Yermolovich# BOLT-NEXT:     DW_IDX_die_offset: DW_FORM_ref4
18*50c0e679SAlexander Yermolovich# BOLT-NEXT:     DW_IDX_parent: DW_FORM_flag_present
19*50c0e679SAlexander Yermolovich# BOLT-NEXT:   }
20*50c0e679SAlexander Yermolovich# BOLT-NEXT:   Abbreviation [[ABBREV3:0x[0-9a-f]*]] {
21*50c0e679SAlexander Yermolovich# BOLT-NEXT:     Tag: DW_TAG_union_type
22*50c0e679SAlexander Yermolovich# BOLT-NEXT:     DW_IDX_die_offset: DW_FORM_ref4
23*50c0e679SAlexander Yermolovich# BOLT-NEXT:     DW_IDX_parent: DW_FORM_ref4
24*50c0e679SAlexander Yermolovich# BOLT-NEXT:   }
25*50c0e679SAlexander Yermolovich# BOLT-NEXT:   Abbreviation [[ABBREV4:0x[0-9a-f]*]] {
26*50c0e679SAlexander Yermolovich# BOLT-NEXT:     Tag: DW_TAG_structure_type
27*50c0e679SAlexander Yermolovich# BOLT-NEXT:     DW_IDX_die_offset: DW_FORM_ref4
28*50c0e679SAlexander Yermolovich# BOLT-NEXT:     DW_IDX_parent: DW_FORM_ref4
29*50c0e679SAlexander Yermolovich# BOLT-NEXT:   }
30*50c0e679SAlexander Yermolovich# BOLT-NEXT: ]
31*50c0e679SAlexander Yermolovich# BOLT-NEXT: Bucket 0 [
32*50c0e679SAlexander Yermolovich# BOLT-NEXT:   EMPTY
33*50c0e679SAlexander Yermolovich# BOLT-NEXT: ]
34*50c0e679SAlexander Yermolovich# BOLT-NEXT: Bucket 1 [
35*50c0e679SAlexander Yermolovich# BOLT-NEXT:   Name 1 {
36*50c0e679SAlexander Yermolovich# BOLT-NEXT:     Hash: 0x7C9A7F6A
37*50c0e679SAlexander Yermolovich# BOLT-NEXT:     String: {{.+}} "main"
38*50c0e679SAlexander Yermolovich# BOLT-NEXT:     Entry @ [[ENTRY:0x[0-9a-f]*]]  {
39*50c0e679SAlexander Yermolovich# BOLT-NEXT:       Abbrev: [[ABBREV1]]
40*50c0e679SAlexander Yermolovich# BOLT-NEXT:       Tag: DW_TAG_subprogram
41*50c0e679SAlexander Yermolovich# BOLT-NEXT:       DW_IDX_die_offset: 0x00000024
42*50c0e679SAlexander Yermolovich# BOLT-NEXT:       DW_IDX_parent: <parent not indexed>
43*50c0e679SAlexander Yermolovich# BOLT-NEXT:     }
44*50c0e679SAlexander Yermolovich# BOLT-NEXT:   }
45*50c0e679SAlexander Yermolovich# BOLT-NEXT: ]
46*50c0e679SAlexander Yermolovich# BOLT-NEXT: Bucket 2 [
47*50c0e679SAlexander Yermolovich# BOLT-NEXT:   EMPTY
48*50c0e679SAlexander Yermolovich# BOLT-NEXT: ]
49*50c0e679SAlexander Yermolovich# BOLT-NEXT: Bucket 3 [
50*50c0e679SAlexander Yermolovich# BOLT-NEXT:   Name 2 {
51*50c0e679SAlexander Yermolovich# BOLT-NEXT:     Hash: 0xB888030
52*50c0e679SAlexander Yermolovich# BOLT-NEXT:     String: {{.+}} "int"
53*50c0e679SAlexander Yermolovich# BOLT-NEXT:     Entry @ {{.+}} {
54*50c0e679SAlexander Yermolovich# BOLT-NEXT:       Abbrev: [[ABBREV2]]
55*50c0e679SAlexander Yermolovich# BOLT-NEXT:       Tag: DW_TAG_base_type
56*50c0e679SAlexander Yermolovich# BOLT-NEXT:       DW_IDX_die_offset: 0x00000083
57*50c0e679SAlexander Yermolovich# BOLT-NEXT:       DW_IDX_parent: <parent not indexed>
58*50c0e679SAlexander Yermolovich# BOLT-NEXT:     }
59*50c0e679SAlexander Yermolovich# BOLT-NEXT:   }
60*50c0e679SAlexander Yermolovich# BOLT-NEXT:   Name 3 {
61*50c0e679SAlexander Yermolovich# BOLT-NEXT:     Hash: 0xED0F01B4
62*50c0e679SAlexander Yermolovich# BOLT-NEXT:     String: {{.+}} "MyUnion"
63*50c0e679SAlexander Yermolovich# BOLT-NEXT:     Entry @ {{.+}} {
64*50c0e679SAlexander Yermolovich# BOLT-NEXT:       Abbrev: [[ABBREV3]]
65*50c0e679SAlexander Yermolovich# BOLT-NEXT:       Tag: DW_TAG_union_type
66*50c0e679SAlexander Yermolovich# BOLT-NEXT:       DW_IDX_die_offset: 0x00000049
67*50c0e679SAlexander Yermolovich# BOLT-NEXT:       DW_IDX_parent: Entry @ [[ENTRY]]
68*50c0e679SAlexander Yermolovich# BOLT-NEXT:     }
69*50c0e679SAlexander Yermolovich# BOLT-NEXT:   }
70*50c0e679SAlexander Yermolovich# BOLT-NEXT: ]
71*50c0e679SAlexander Yermolovich# BOLT-NEXT: Bucket 4 [
72*50c0e679SAlexander Yermolovich# BOLT-NEXT:   Name 4 {
73*50c0e679SAlexander Yermolovich# BOLT-NEXT:     Hash: 0x8AB681F0
74*50c0e679SAlexander Yermolovich# BOLT-NEXT:     String: {{.+}} "MyStruct"
75*50c0e679SAlexander Yermolovich# BOLT-NEXT:     Entry @ [[ENTRY2:0x[0-9a-f]*]] {
76*50c0e679SAlexander Yermolovich# BOLT-NEXT:       Abbrev: [[ABBREV4]]
77*50c0e679SAlexander Yermolovich# BOLT-NEXT:       Tag: DW_TAG_structure_type
78*50c0e679SAlexander Yermolovich# BOLT-NEXT:       DW_IDX_die_offset: 0x00000062
79*50c0e679SAlexander Yermolovich# BOLT-NEXT:       DW_IDX_parent: Entry @ [[ENTRY]]
80*50c0e679SAlexander Yermolovich# BOLT-NEXT:     }
81*50c0e679SAlexander Yermolovich# BOLT-NEXT:   }
82*50c0e679SAlexander Yermolovich# BOLT-NEXT:   Name 5 {
83*50c0e679SAlexander Yermolovich# BOLT-NEXT:     Hash: 0x8EEF3866
84*50c0e679SAlexander Yermolovich# BOLT-NEXT:     String: {{.+}} "MyUnion2"
85*50c0e679SAlexander Yermolovich# BOLT-NEXT:     Entry @ {{.+}} {
86*50c0e679SAlexander Yermolovich# BOLT-NEXT:       Abbrev: [[ABBREV3]]
87*50c0e679SAlexander Yermolovich# BOLT-NEXT:       Tag: DW_TAG_union_type
88*50c0e679SAlexander Yermolovich# BOLT-NEXT:       DW_IDX_die_offset: 0x00000071
89*50c0e679SAlexander Yermolovich# BOLT-NEXT:       DW_IDX_parent: Entry @ [[ENTRY2]]
90*50c0e679SAlexander Yermolovich
91*50c0e679SAlexander Yermolovich
92*50c0e679SAlexander Yermolovich## int main() {
93*50c0e679SAlexander Yermolovich##   union MyUnion {
94*50c0e679SAlexander Yermolovich##     int a;
95*50c0e679SAlexander Yermolovich##     int b;
96*50c0e679SAlexander Yermolovich##   };
97*50c0e679SAlexander Yermolovich##   struct MyStruct {
98*50c0e679SAlexander Yermolovich##     union MyUnion2 {
99*50c0e679SAlexander Yermolovich##       int a;
100*50c0e679SAlexander Yermolovich##     };
101*50c0e679SAlexander Yermolovich##     MyUnion2 myUnion2;
102*50c0e679SAlexander Yermolovich##   };
103*50c0e679SAlexander Yermolovich##   MyUnion myEnum;
104*50c0e679SAlexander Yermolovich##   myEnum.a = 5;
105*50c0e679SAlexander Yermolovich##   MyStruct myStruct;
106*50c0e679SAlexander Yermolovich##   return myEnum.a + myStruct.myUnion2.a;
107*50c0e679SAlexander Yermolovich## }
108*50c0e679SAlexander Yermolovich
109*50c0e679SAlexander Yermolovich	.text
110*50c0e679SAlexander Yermolovich	.file	"main.cpp"
111*50c0e679SAlexander Yermolovich	.globl	main                            # -- Begin function main
112*50c0e679SAlexander Yermolovich	.p2align	4, 0x90
113*50c0e679SAlexander Yermolovich	.type	main,@function
114*50c0e679SAlexander Yermolovichmain:                                   # @main
115*50c0e679SAlexander Yermolovich.Lfunc_begin0:
116*50c0e679SAlexander Yermolovich	.file	0 "union" "main.cpp" md5 0xb75b2512f2daa57bbcfe0c29f56d95f4
117*50c0e679SAlexander Yermolovich	.loc	0 1 0                           # main.cpp:1:0
118*50c0e679SAlexander Yermolovich	retq
119*50c0e679SAlexander Yermolovich.Lfunc_end0:
120*50c0e679SAlexander Yermolovich	.size	main, .-main
121*50c0e679SAlexander Yermolovich                                        # -- End function
122*50c0e679SAlexander Yermolovich	.section	.debug_abbrev,"",@progbits
123*50c0e679SAlexander Yermolovich	.byte	1                               # Abbreviation Code
124*50c0e679SAlexander Yermolovich	.byte	17                              # DW_TAG_compile_unit
125*50c0e679SAlexander Yermolovich	.byte	1                               # DW_CHILDREN_yes
126*50c0e679SAlexander Yermolovich	.byte	37                              # DW_AT_producer
127*50c0e679SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
128*50c0e679SAlexander Yermolovich	.byte	19                              # DW_AT_language
129*50c0e679SAlexander Yermolovich	.byte	5                               # DW_FORM_data2
130*50c0e679SAlexander Yermolovich	.byte	3                               # DW_AT_name
131*50c0e679SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
132*50c0e679SAlexander Yermolovich	.byte	114                             # DW_AT_str_offsets_base
133*50c0e679SAlexander Yermolovich	.byte	23                              # DW_FORM_sec_offset
134*50c0e679SAlexander Yermolovich	.byte	16                              # DW_AT_stmt_list
135*50c0e679SAlexander Yermolovich	.byte	23                              # DW_FORM_sec_offset
136*50c0e679SAlexander Yermolovich	.byte	27                              # DW_AT_comp_dir
137*50c0e679SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
138*50c0e679SAlexander Yermolovich	.byte	17                              # DW_AT_low_pc
139*50c0e679SAlexander Yermolovich	.byte	27                              # DW_FORM_addrx
140*50c0e679SAlexander Yermolovich	.byte	18                              # DW_AT_high_pc
141*50c0e679SAlexander Yermolovich	.byte	6                               # DW_FORM_data4
142*50c0e679SAlexander Yermolovich	.byte	115                             # DW_AT_addr_base
143*50c0e679SAlexander Yermolovich	.byte	23                              # DW_FORM_sec_offset
144*50c0e679SAlexander Yermolovich	.byte	0                               # EOM(1)
145*50c0e679SAlexander Yermolovich	.byte	0                               # EOM(2)
146*50c0e679SAlexander Yermolovich	.byte	2                               # Abbreviation Code
147*50c0e679SAlexander Yermolovich	.byte	46                              # DW_TAG_subprogram
148*50c0e679SAlexander Yermolovich	.byte	1                               # DW_CHILDREN_yes
149*50c0e679SAlexander Yermolovich	.byte	17                              # DW_AT_low_pc
150*50c0e679SAlexander Yermolovich	.byte	27                              # DW_FORM_addrx
151*50c0e679SAlexander Yermolovich	.byte	18                              # DW_AT_high_pc
152*50c0e679SAlexander Yermolovich	.byte	6                               # DW_FORM_data4
153*50c0e679SAlexander Yermolovich	.byte	64                              # DW_AT_frame_base
154*50c0e679SAlexander Yermolovich	.byte	24                              # DW_FORM_exprloc
155*50c0e679SAlexander Yermolovich	.byte	3                               # DW_AT_name
156*50c0e679SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
157*50c0e679SAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
158*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
159*50c0e679SAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
160*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
161*50c0e679SAlexander Yermolovich	.byte	73                              # DW_AT_type
162*50c0e679SAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
163*50c0e679SAlexander Yermolovich	.byte	63                              # DW_AT_external
164*50c0e679SAlexander Yermolovich	.byte	25                              # DW_FORM_flag_present
165*50c0e679SAlexander Yermolovich	.byte	0                               # EOM(1)
166*50c0e679SAlexander Yermolovich	.byte	0                               # EOM(2)
167*50c0e679SAlexander Yermolovich	.byte	3                               # Abbreviation Code
168*50c0e679SAlexander Yermolovich	.byte	52                              # DW_TAG_variable
169*50c0e679SAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
170*50c0e679SAlexander Yermolovich	.byte	2                               # DW_AT_location
171*50c0e679SAlexander Yermolovich	.byte	24                              # DW_FORM_exprloc
172*50c0e679SAlexander Yermolovich	.byte	3                               # DW_AT_name
173*50c0e679SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
174*50c0e679SAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
175*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
176*50c0e679SAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
177*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
178*50c0e679SAlexander Yermolovich	.byte	73                              # DW_AT_type
179*50c0e679SAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
180*50c0e679SAlexander Yermolovich	.byte	0                               # EOM(1)
181*50c0e679SAlexander Yermolovich	.byte	0                               # EOM(2)
182*50c0e679SAlexander Yermolovich	.byte	4                               # Abbreviation Code
183*50c0e679SAlexander Yermolovich	.byte	23                              # DW_TAG_union_type
184*50c0e679SAlexander Yermolovich	.byte	1                               # DW_CHILDREN_yes
185*50c0e679SAlexander Yermolovich	.byte	54                              # DW_AT_calling_convention
186*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
187*50c0e679SAlexander Yermolovich	.byte	3                               # DW_AT_name
188*50c0e679SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
189*50c0e679SAlexander Yermolovich	.byte	11                              # DW_AT_byte_size
190*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
191*50c0e679SAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
192*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
193*50c0e679SAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
194*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
195*50c0e679SAlexander Yermolovich	.byte	0                               # EOM(1)
196*50c0e679SAlexander Yermolovich	.byte	0                               # EOM(2)
197*50c0e679SAlexander Yermolovich	.byte	5                               # Abbreviation Code
198*50c0e679SAlexander Yermolovich	.byte	13                              # DW_TAG_member
199*50c0e679SAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
200*50c0e679SAlexander Yermolovich	.byte	3                               # DW_AT_name
201*50c0e679SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
202*50c0e679SAlexander Yermolovich	.byte	73                              # DW_AT_type
203*50c0e679SAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
204*50c0e679SAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
205*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
206*50c0e679SAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
207*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
208*50c0e679SAlexander Yermolovich	.byte	56                              # DW_AT_data_member_location
209*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
210*50c0e679SAlexander Yermolovich	.byte	0                               # EOM(1)
211*50c0e679SAlexander Yermolovich	.byte	0                               # EOM(2)
212*50c0e679SAlexander Yermolovich	.byte	6                               # Abbreviation Code
213*50c0e679SAlexander Yermolovich	.byte	19                              # DW_TAG_structure_type
214*50c0e679SAlexander Yermolovich	.byte	1                               # DW_CHILDREN_yes
215*50c0e679SAlexander Yermolovich	.byte	54                              # DW_AT_calling_convention
216*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
217*50c0e679SAlexander Yermolovich	.byte	3                               # DW_AT_name
218*50c0e679SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
219*50c0e679SAlexander Yermolovich	.byte	11                              # DW_AT_byte_size
220*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
221*50c0e679SAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
222*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
223*50c0e679SAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
224*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
225*50c0e679SAlexander Yermolovich	.byte	0                               # EOM(1)
226*50c0e679SAlexander Yermolovich	.byte	0                               # EOM(2)
227*50c0e679SAlexander Yermolovich	.byte	7                               # Abbreviation Code
228*50c0e679SAlexander Yermolovich	.byte	36                              # DW_TAG_base_type
229*50c0e679SAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
230*50c0e679SAlexander Yermolovich	.byte	3                               # DW_AT_name
231*50c0e679SAlexander Yermolovich	.byte	37                              # DW_FORM_strx1
232*50c0e679SAlexander Yermolovich	.byte	62                              # DW_AT_encoding
233*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
234*50c0e679SAlexander Yermolovich	.byte	11                              # DW_AT_byte_size
235*50c0e679SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
236*50c0e679SAlexander Yermolovich	.byte	0                               # EOM(1)
237*50c0e679SAlexander Yermolovich	.byte	0                               # EOM(2)
238*50c0e679SAlexander Yermolovich	.byte	0                               # EOM(3)
239*50c0e679SAlexander Yermolovich	.section	.debug_info,"",@progbits
240*50c0e679SAlexander Yermolovich.Lcu_begin0:
241*50c0e679SAlexander Yermolovich	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
242*50c0e679SAlexander Yermolovich.Ldebug_info_start0:
243*50c0e679SAlexander Yermolovich	.short	5                               # DWARF version number
244*50c0e679SAlexander Yermolovich	.byte	1                               # DWARF Unit Type
245*50c0e679SAlexander Yermolovich	.byte	8                               # Address Size (in bytes)
246*50c0e679SAlexander Yermolovich	.long	.debug_abbrev                   # Offset Into Abbrev. Section
247*50c0e679SAlexander Yermolovich	.byte	1                               # Abbrev [1] 0xc:0x7b DW_TAG_compile_unit
248*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_producer
249*50c0e679SAlexander Yermolovich	.short	33                              # DW_AT_language
250*50c0e679SAlexander Yermolovich	.byte	1                               # DW_AT_name
251*50c0e679SAlexander Yermolovich	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
252*50c0e679SAlexander Yermolovich	.long	.Lline_table_start0             # DW_AT_stmt_list
253*50c0e679SAlexander Yermolovich	.byte	2                               # DW_AT_comp_dir
254*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_low_pc
255*50c0e679SAlexander Yermolovich	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
256*50c0e679SAlexander Yermolovich	.long	.Laddr_table_base0              # DW_AT_addr_base
257*50c0e679SAlexander Yermolovich	.byte	2                               # Abbrev [2] 0x23:0x5f DW_TAG_subprogram
258*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_low_pc
259*50c0e679SAlexander Yermolovich	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
260*50c0e679SAlexander Yermolovich	.byte	1                               # DW_AT_frame_base
261*50c0e679SAlexander Yermolovich	.byte	86
262*50c0e679SAlexander Yermolovich	.byte	3                               # DW_AT_name
263*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_decl_file
264*50c0e679SAlexander Yermolovich	.byte	1                               # DW_AT_decl_line
265*50c0e679SAlexander Yermolovich	.long	130                             # DW_AT_type
266*50c0e679SAlexander Yermolovich                                        # DW_AT_external
267*50c0e679SAlexander Yermolovich	.byte	3                               # Abbrev [3] 0x32:0xb DW_TAG_variable
268*50c0e679SAlexander Yermolovich	.byte	2                               # DW_AT_location
269*50c0e679SAlexander Yermolovich	.byte	145
270*50c0e679SAlexander Yermolovich	.byte	120
271*50c0e679SAlexander Yermolovich	.byte	5                               # DW_AT_name
272*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_decl_file
273*50c0e679SAlexander Yermolovich	.byte	12                              # DW_AT_decl_line
274*50c0e679SAlexander Yermolovich	.long	72                              # DW_AT_type
275*50c0e679SAlexander Yermolovich	.byte	3                               # Abbrev [3] 0x3d:0xb DW_TAG_variable
276*50c0e679SAlexander Yermolovich	.byte	2                               # DW_AT_location
277*50c0e679SAlexander Yermolovich	.byte	145
278*50c0e679SAlexander Yermolovich	.byte	116
279*50c0e679SAlexander Yermolovich	.byte	9                               # DW_AT_name
280*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_decl_file
281*50c0e679SAlexander Yermolovich	.byte	14                              # DW_AT_decl_line
282*50c0e679SAlexander Yermolovich	.long	97                              # DW_AT_type
283*50c0e679SAlexander Yermolovich	.byte	4                               # Abbrev [4] 0x48:0x19 DW_TAG_union_type
284*50c0e679SAlexander Yermolovich	.byte	5                               # DW_AT_calling_convention
285*50c0e679SAlexander Yermolovich	.byte	8                               # DW_AT_name
286*50c0e679SAlexander Yermolovich	.byte	4                               # DW_AT_byte_size
287*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_decl_file
288*50c0e679SAlexander Yermolovich	.byte	2                               # DW_AT_decl_line
289*50c0e679SAlexander Yermolovich	.byte	5                               # Abbrev [5] 0x4e:0x9 DW_TAG_member
290*50c0e679SAlexander Yermolovich	.byte	6                               # DW_AT_name
291*50c0e679SAlexander Yermolovich	.long	130                             # DW_AT_type
292*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_decl_file
293*50c0e679SAlexander Yermolovich	.byte	3                               # DW_AT_decl_line
294*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_data_member_location
295*50c0e679SAlexander Yermolovich	.byte	5                               # Abbrev [5] 0x57:0x9 DW_TAG_member
296*50c0e679SAlexander Yermolovich	.byte	7                               # DW_AT_name
297*50c0e679SAlexander Yermolovich	.long	130                             # DW_AT_type
298*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_decl_file
299*50c0e679SAlexander Yermolovich	.byte	4                               # DW_AT_decl_line
300*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_data_member_location
301*50c0e679SAlexander Yermolovich	.byte	0                               # End Of Children Mark
302*50c0e679SAlexander Yermolovich	.byte	6                               # Abbrev [6] 0x61:0x20 DW_TAG_structure_type
303*50c0e679SAlexander Yermolovich	.byte	5                               # DW_AT_calling_convention
304*50c0e679SAlexander Yermolovich	.byte	12                              # DW_AT_name
305*50c0e679SAlexander Yermolovich	.byte	4                               # DW_AT_byte_size
306*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_decl_file
307*50c0e679SAlexander Yermolovich	.byte	6                               # DW_AT_decl_line
308*50c0e679SAlexander Yermolovich	.byte	5                               # Abbrev [5] 0x67:0x9 DW_TAG_member
309*50c0e679SAlexander Yermolovich	.byte	10                              # DW_AT_name
310*50c0e679SAlexander Yermolovich	.long	112                             # DW_AT_type
311*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_decl_file
312*50c0e679SAlexander Yermolovich	.byte	10                              # DW_AT_decl_line
313*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_data_member_location
314*50c0e679SAlexander Yermolovich	.byte	4                               # Abbrev [4] 0x70:0x10 DW_TAG_union_type
315*50c0e679SAlexander Yermolovich	.byte	5                               # DW_AT_calling_convention
316*50c0e679SAlexander Yermolovich	.byte	11                              # DW_AT_name
317*50c0e679SAlexander Yermolovich	.byte	4                               # DW_AT_byte_size
318*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_decl_file
319*50c0e679SAlexander Yermolovich	.byte	7                               # DW_AT_decl_line
320*50c0e679SAlexander Yermolovich	.byte	5                               # Abbrev [5] 0x76:0x9 DW_TAG_member
321*50c0e679SAlexander Yermolovich	.byte	6                               # DW_AT_name
322*50c0e679SAlexander Yermolovich	.long	130                             # DW_AT_type
323*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_decl_file
324*50c0e679SAlexander Yermolovich	.byte	8                               # DW_AT_decl_line
325*50c0e679SAlexander Yermolovich	.byte	0                               # DW_AT_data_member_location
326*50c0e679SAlexander Yermolovich	.byte	0                               # End Of Children Mark
327*50c0e679SAlexander Yermolovich	.byte	0                               # End Of Children Mark
328*50c0e679SAlexander Yermolovich	.byte	0                               # End Of Children Mark
329*50c0e679SAlexander Yermolovich	.byte	7                               # Abbrev [7] 0x82:0x4 DW_TAG_base_type
330*50c0e679SAlexander Yermolovich	.byte	4                               # DW_AT_name
331*50c0e679SAlexander Yermolovich	.byte	5                               # DW_AT_encoding
332*50c0e679SAlexander Yermolovich	.byte	4                               # DW_AT_byte_size
333*50c0e679SAlexander Yermolovich	.byte	0                               # End Of Children Mark
334*50c0e679SAlexander Yermolovich.Ldebug_info_end0:
335*50c0e679SAlexander Yermolovich	.section	.debug_str_offsets,"",@progbits
336*50c0e679SAlexander Yermolovich	.long	56                              # Length of String Offsets Set
337*50c0e679SAlexander Yermolovich	.short	5
338*50c0e679SAlexander Yermolovich	.short	0
339*50c0e679SAlexander Yermolovich.Lstr_offsets_base0:
340*50c0e679SAlexander Yermolovich	.section	.debug_str,"MS",@progbits,1
341*50c0e679SAlexander Yermolovich.Linfo_string0:
342*50c0e679SAlexander Yermolovich	.asciz	"clang version 20.0.0git"       # string offset=0
343*50c0e679SAlexander Yermolovich.Linfo_string1:
344*50c0e679SAlexander Yermolovich	.asciz	"main.cpp"                      # string offset=24
345*50c0e679SAlexander Yermolovich.Linfo_string2:
346*50c0e679SAlexander Yermolovich	.asciz	"union" # string offset=33
347*50c0e679SAlexander Yermolovich.Linfo_string3:
348*50c0e679SAlexander Yermolovich	.asciz	"main"                          # string offset=77
349*50c0e679SAlexander Yermolovich.Linfo_string4:
350*50c0e679SAlexander Yermolovich	.asciz	"int"                           # string offset=82
351*50c0e679SAlexander Yermolovich.Linfo_string5:
352*50c0e679SAlexander Yermolovich	.asciz	"myEnum"                        # string offset=86
353*50c0e679SAlexander Yermolovich.Linfo_string6:
354*50c0e679SAlexander Yermolovich	.asciz	"MyUnion"                       # string offset=93
355*50c0e679SAlexander Yermolovich.Linfo_string7:
356*50c0e679SAlexander Yermolovich	.asciz	"a"                             # string offset=101
357*50c0e679SAlexander Yermolovich.Linfo_string8:
358*50c0e679SAlexander Yermolovich	.asciz	"b"                             # string offset=103
359*50c0e679SAlexander Yermolovich.Linfo_string9:
360*50c0e679SAlexander Yermolovich	.asciz	"myStruct"                      # string offset=105
361*50c0e679SAlexander Yermolovich.Linfo_string10:
362*50c0e679SAlexander Yermolovich	.asciz	"MyStruct"                      # string offset=114
363*50c0e679SAlexander Yermolovich.Linfo_string11:
364*50c0e679SAlexander Yermolovich	.asciz	"myUnion2"                      # string offset=123
365*50c0e679SAlexander Yermolovich.Linfo_string12:
366*50c0e679SAlexander Yermolovich	.asciz	"MyUnion2"                      # string offset=132
367*50c0e679SAlexander Yermolovich	.section	.debug_str_offsets,"",@progbits
368*50c0e679SAlexander Yermolovich	.long	.Linfo_string0
369*50c0e679SAlexander Yermolovich	.long	.Linfo_string1
370*50c0e679SAlexander Yermolovich	.long	.Linfo_string2
371*50c0e679SAlexander Yermolovich	.long	.Linfo_string3
372*50c0e679SAlexander Yermolovich	.long	.Linfo_string4
373*50c0e679SAlexander Yermolovich	.long	.Linfo_string5
374*50c0e679SAlexander Yermolovich	.long	.Linfo_string7
375*50c0e679SAlexander Yermolovich	.long	.Linfo_string8
376*50c0e679SAlexander Yermolovich	.long	.Linfo_string6
377*50c0e679SAlexander Yermolovich	.long	.Linfo_string9
378*50c0e679SAlexander Yermolovich	.long	.Linfo_string11
379*50c0e679SAlexander Yermolovich	.long	.Linfo_string12
380*50c0e679SAlexander Yermolovich	.long	.Linfo_string10
381*50c0e679SAlexander Yermolovich	.section	.debug_addr,"",@progbits
382*50c0e679SAlexander Yermolovich	.long	.Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
383*50c0e679SAlexander Yermolovich.Ldebug_addr_start0:
384*50c0e679SAlexander Yermolovich	.short	5                               # DWARF version number
385*50c0e679SAlexander Yermolovich	.byte	8                               # Address size
386*50c0e679SAlexander Yermolovich	.byte	0                               # Segment selector size
387*50c0e679SAlexander Yermolovich.Laddr_table_base0:
388*50c0e679SAlexander Yermolovich	.quad	.Lfunc_begin0
389*50c0e679SAlexander Yermolovich.Ldebug_addr_end0:
390*50c0e679SAlexander Yermolovich	.section	.debug_names,"",@progbits
391*50c0e679SAlexander Yermolovich	.long	.Lnames_end0-.Lnames_start0     # Header: unit length
392*50c0e679SAlexander Yermolovich.Lnames_start0:
393*50c0e679SAlexander Yermolovich	.short	5                               # Header: version
394*50c0e679SAlexander Yermolovich	.short	0                               # Header: padding
395*50c0e679SAlexander Yermolovich	.long	1                               # Header: compilation unit count
396*50c0e679SAlexander Yermolovich	.long	0                               # Header: local type unit count
397*50c0e679SAlexander Yermolovich	.long	0                               # Header: foreign type unit count
398*50c0e679SAlexander Yermolovich	.long	5                               # Header: bucket count
399*50c0e679SAlexander Yermolovich	.long	5                               # Header: name count
400*50c0e679SAlexander Yermolovich	.long	.Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size
401*50c0e679SAlexander Yermolovich	.long	8                               # Header: augmentation string size
402*50c0e679SAlexander Yermolovich	.ascii	"LLVM0700"                      # Header: augmentation string
403*50c0e679SAlexander Yermolovich	.long	.Lcu_begin0                     # Compilation unit 0
404*50c0e679SAlexander Yermolovich	.long	0                               # Bucket 0
405*50c0e679SAlexander Yermolovich	.long	1                               # Bucket 1
406*50c0e679SAlexander Yermolovich	.long	0                               # Bucket 2
407*50c0e679SAlexander Yermolovich	.long	2                               # Bucket 3
408*50c0e679SAlexander Yermolovich	.long	4                               # Bucket 4
409*50c0e679SAlexander Yermolovich	.long	2090499946                      # Hash in Bucket 1
410*50c0e679SAlexander Yermolovich	.long	193495088                       # Hash in Bucket 3
411*50c0e679SAlexander Yermolovich	.long	-317783628                      # Hash in Bucket 3
412*50c0e679SAlexander Yermolovich	.long	-1967750672                     # Hash in Bucket 4
413*50c0e679SAlexander Yermolovich	.long	-1896925082                     # Hash in Bucket 4
414*50c0e679SAlexander Yermolovich	.long	.Linfo_string3                  # String in Bucket 1: main
415*50c0e679SAlexander Yermolovich	.long	.Linfo_string4                  # String in Bucket 3: int
416*50c0e679SAlexander Yermolovich	.long	.Linfo_string6                  # String in Bucket 3: MyUnion
417*50c0e679SAlexander Yermolovich	.long	.Linfo_string10                 # String in Bucket 4: MyStruct
418*50c0e679SAlexander Yermolovich	.long	.Linfo_string12                 # String in Bucket 4: MyUnion2
419*50c0e679SAlexander Yermolovich	.long	.Lnames0-.Lnames_entries0       # Offset in Bucket 1
420*50c0e679SAlexander Yermolovich	.long	.Lnames1-.Lnames_entries0       # Offset in Bucket 3
421*50c0e679SAlexander Yermolovich	.long	.Lnames2-.Lnames_entries0       # Offset in Bucket 3
422*50c0e679SAlexander Yermolovich	.long	.Lnames3-.Lnames_entries0       # Offset in Bucket 4
423*50c0e679SAlexander Yermolovich	.long	.Lnames4-.Lnames_entries0       # Offset in Bucket 4
424*50c0e679SAlexander Yermolovich.Lnames_abbrev_start0:
425*50c0e679SAlexander Yermolovich	.byte	1                               # Abbrev code
426*50c0e679SAlexander Yermolovich	.byte	46                              # DW_TAG_subprogram
427*50c0e679SAlexander Yermolovich	.byte	3                               # DW_IDX_die_offset
428*50c0e679SAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
429*50c0e679SAlexander Yermolovich	.byte	4                               # DW_IDX_parent
430*50c0e679SAlexander Yermolovich	.byte	25                              # DW_FORM_flag_present
431*50c0e679SAlexander Yermolovich	.byte	0                               # End of abbrev
432*50c0e679SAlexander Yermolovich	.byte	0                               # End of abbrev
433*50c0e679SAlexander Yermolovich	.byte	2                               # Abbrev code
434*50c0e679SAlexander Yermolovich	.byte	36                              # DW_TAG_base_type
435*50c0e679SAlexander Yermolovich	.byte	3                               # DW_IDX_die_offset
436*50c0e679SAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
437*50c0e679SAlexander Yermolovich	.byte	4                               # DW_IDX_parent
438*50c0e679SAlexander Yermolovich	.byte	25                              # DW_FORM_flag_present
439*50c0e679SAlexander Yermolovich	.byte	0                               # End of abbrev
440*50c0e679SAlexander Yermolovich	.byte	0                               # End of abbrev
441*50c0e679SAlexander Yermolovich	.byte	3                               # Abbrev code
442*50c0e679SAlexander Yermolovich	.byte	23                              # DW_TAG_union_type
443*50c0e679SAlexander Yermolovich	.byte	3                               # DW_IDX_die_offset
444*50c0e679SAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
445*50c0e679SAlexander Yermolovich	.byte	4                               # DW_IDX_parent
446*50c0e679SAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
447*50c0e679SAlexander Yermolovich	.byte	0                               # End of abbrev
448*50c0e679SAlexander Yermolovich	.byte	0                               # End of abbrev
449*50c0e679SAlexander Yermolovich	.byte	4                               # Abbrev code
450*50c0e679SAlexander Yermolovich	.byte	19                              # DW_TAG_structure_type
451*50c0e679SAlexander Yermolovich	.byte	3                               # DW_IDX_die_offset
452*50c0e679SAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
453*50c0e679SAlexander Yermolovich	.byte	4                               # DW_IDX_parent
454*50c0e679SAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
455*50c0e679SAlexander Yermolovich	.byte	0                               # End of abbrev
456*50c0e679SAlexander Yermolovich	.byte	0                               # End of abbrev
457*50c0e679SAlexander Yermolovich	.byte	0                               # End of abbrev list
458*50c0e679SAlexander Yermolovich.Lnames_abbrev_end0:
459*50c0e679SAlexander Yermolovich.Lnames_entries0:
460*50c0e679SAlexander Yermolovich.Lnames0:
461*50c0e679SAlexander Yermolovich.L3:
462*50c0e679SAlexander Yermolovich	.byte	1                               # Abbreviation code
463*50c0e679SAlexander Yermolovich	.long	35                              # DW_IDX_die_offset
464*50c0e679SAlexander Yermolovich	.byte	0                               # DW_IDX_parent
465*50c0e679SAlexander Yermolovich                                        # End of list: main
466*50c0e679SAlexander Yermolovich.Lnames1:
467*50c0e679SAlexander Yermolovich.L1:
468*50c0e679SAlexander Yermolovich	.byte	2                               # Abbreviation code
469*50c0e679SAlexander Yermolovich	.long	130                             # DW_IDX_die_offset
470*50c0e679SAlexander Yermolovich	.byte	0                               # DW_IDX_parent
471*50c0e679SAlexander Yermolovich                                        # End of list: int
472*50c0e679SAlexander Yermolovich.Lnames2:
473*50c0e679SAlexander Yermolovich.L4:
474*50c0e679SAlexander Yermolovich	.byte	3                               # Abbreviation code
475*50c0e679SAlexander Yermolovich	.long	72                              # DW_IDX_die_offset
476*50c0e679SAlexander Yermolovich	.long	.L3-.Lnames_entries0            # DW_IDX_parent
477*50c0e679SAlexander Yermolovich	.byte	0                               # End of list: MyUnion
478*50c0e679SAlexander Yermolovich.Lnames3:
479*50c0e679SAlexander Yermolovich.L2:
480*50c0e679SAlexander Yermolovich	.byte	4                               # Abbreviation code
481*50c0e679SAlexander Yermolovich	.long	97                              # DW_IDX_die_offset
482*50c0e679SAlexander Yermolovich	.long	.L3-.Lnames_entries0            # DW_IDX_parent
483*50c0e679SAlexander Yermolovich	.byte	0                               # End of list: MyStruct
484*50c0e679SAlexander Yermolovich.Lnames4:
485*50c0e679SAlexander Yermolovich.L0:
486*50c0e679SAlexander Yermolovich	.byte	3                               # Abbreviation code
487*50c0e679SAlexander Yermolovich	.long	112                             # DW_IDX_die_offset
488*50c0e679SAlexander Yermolovich	.long	.L2-.Lnames_entries0            # DW_IDX_parent
489*50c0e679SAlexander Yermolovich	.byte	0                               # End of list: MyUnion2
490*50c0e679SAlexander Yermolovich	.p2align	2, 0x0
491*50c0e679SAlexander Yermolovich.Lnames_end0:
492*50c0e679SAlexander Yermolovich	.ident	"clang version 20.0.0git"
493*50c0e679SAlexander Yermolovich	.section	".note.GNU-stack","",@progbits
494*50c0e679SAlexander Yermolovich	.addrsig
495*50c0e679SAlexander Yermolovich	.section	.debug_line,"",@progbits
496*50c0e679SAlexander Yermolovich.Lline_table_start0:
497