xref: /llvm-project/bolt/test/X86/Inputs/dwarf4-debug-line-offset-change-after-bolt-helper.s (revision bb6a4850553dd4140a5bd63187ec1b14d0b731f9)
1*bb6a4850SAlexander Yermolovich# clang++ -g2 -fdebug-types-section -gdwarf-4 -ffunction-sections
2*bb6a4850SAlexander Yermolovich# int foo(int i) {
3*bb6a4850SAlexander Yermolovich#   if (i == 1)
4*bb6a4850SAlexander Yermolovich#     return 2;
5*bb6a4850SAlexander Yermolovich#   return 1;
6*bb6a4850SAlexander Yermolovich# }
7*bb6a4850SAlexander Yermolovich# int main(int argc, char* argv[]) {
8*bb6a4850SAlexander Yermolovich#   int j = argc;
9*bb6a4850SAlexander Yermolovich#   if (j ==3)
10*bb6a4850SAlexander Yermolovich#     j+= foo(argc);
11*bb6a4850SAlexander Yermolovich#   return j;
12*bb6a4850SAlexander Yermolovich# }
13*bb6a4850SAlexander Yermolovich	.text
14*bb6a4850SAlexander Yermolovich	.file	"helper.cpp"
15*bb6a4850SAlexander Yermolovich	.file	1 "/test" "helper.cpp"
16*bb6a4850SAlexander Yermolovich	.section	.debug_types,"G",@progbits,7448148824980338162,comdat
17*bb6a4850SAlexander Yermolovich.Ltu_begin0:
18*bb6a4850SAlexander Yermolovich	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
19*bb6a4850SAlexander Yermolovich.Ldebug_info_start0:
20*bb6a4850SAlexander Yermolovich	.short	4                               # DWARF version number
21*bb6a4850SAlexander Yermolovich	.long	.debug_abbrev                   # Offset Into Abbrev. Section
22*bb6a4850SAlexander Yermolovich	.byte	8                               # Address Size (in bytes)
23*bb6a4850SAlexander Yermolovich	.quad	7448148824980338162             # Type Signature
24*bb6a4850SAlexander Yermolovich	.long	30                              # Type DIE Offset
25*bb6a4850SAlexander Yermolovich	.byte	1                               # Abbrev [1] 0x17:0x25 DW_TAG_type_unit
26*bb6a4850SAlexander Yermolovich	.short	33                              # DW_AT_language
27*bb6a4850SAlexander Yermolovich	.long	.Lline_table_start0             # DW_AT_stmt_list
28*bb6a4850SAlexander Yermolovich	.byte	2                               # Abbrev [2] 0x1e:0x16 DW_TAG_structure_type
29*bb6a4850SAlexander Yermolovich	.byte	5                               # DW_AT_calling_convention
30*bb6a4850SAlexander Yermolovich	.long	.Linfo_string6                  # DW_AT_name
31*bb6a4850SAlexander Yermolovich	.byte	4                               # DW_AT_byte_size
32*bb6a4850SAlexander Yermolovich	.byte	1                               # DW_AT_decl_file
33*bb6a4850SAlexander Yermolovich	.byte	1                               # DW_AT_decl_line
34*bb6a4850SAlexander Yermolovich	.byte	3                               # Abbrev [3] 0x27:0xc DW_TAG_member
35*bb6a4850SAlexander Yermolovich	.long	.Linfo_string4                  # DW_AT_name
36*bb6a4850SAlexander Yermolovich	.long	52                              # DW_AT_type
37*bb6a4850SAlexander Yermolovich	.byte	1                               # DW_AT_decl_file
38*bb6a4850SAlexander Yermolovich	.byte	2                               # DW_AT_decl_line
39*bb6a4850SAlexander Yermolovich	.byte	0                               # DW_AT_data_member_location
40*bb6a4850SAlexander Yermolovich	.byte	0                               # End Of Children Mark
41*bb6a4850SAlexander Yermolovich	.byte	4                               # Abbrev [4] 0x34:0x7 DW_TAG_base_type
42*bb6a4850SAlexander Yermolovich	.long	.Linfo_string5                  # DW_AT_name
43*bb6a4850SAlexander Yermolovich	.byte	5                               # DW_AT_encoding
44*bb6a4850SAlexander Yermolovich	.byte	4                               # DW_AT_byte_size
45*bb6a4850SAlexander Yermolovich	.byte	0                               # End Of Children Mark
46*bb6a4850SAlexander Yermolovich.Ldebug_info_end0:
47*bb6a4850SAlexander Yermolovich	.type	f2,@object                      # @f2
48*bb6a4850SAlexander Yermolovich	.bss
49*bb6a4850SAlexander Yermolovich	.globl	f2
50*bb6a4850SAlexander Yermolovich	.p2align	2, 0x0
51*bb6a4850SAlexander Yermolovichf2:
52*bb6a4850SAlexander Yermolovich	.zero	4
53*bb6a4850SAlexander Yermolovich	.size	f2, 4
54*bb6a4850SAlexander Yermolovich
55*bb6a4850SAlexander Yermolovich	.section	.debug_abbrev,"",@progbits
56*bb6a4850SAlexander Yermolovich	.byte	1                               # Abbreviation Code
57*bb6a4850SAlexander Yermolovich	.byte	65                              # DW_TAG_type_unit
58*bb6a4850SAlexander Yermolovich	.byte	1                               # DW_CHILDREN_yes
59*bb6a4850SAlexander Yermolovich	.byte	19                              # DW_AT_language
60*bb6a4850SAlexander Yermolovich	.byte	5                               # DW_FORM_data2
61*bb6a4850SAlexander Yermolovich	.byte	16                              # DW_AT_stmt_list
62*bb6a4850SAlexander Yermolovich	.byte	23                              # DW_FORM_sec_offset
63*bb6a4850SAlexander Yermolovich	.byte	0                               # EOM(1)
64*bb6a4850SAlexander Yermolovich	.byte	0                               # EOM(2)
65*bb6a4850SAlexander Yermolovich	.byte	2                               # Abbreviation Code
66*bb6a4850SAlexander Yermolovich	.byte	19                              # DW_TAG_structure_type
67*bb6a4850SAlexander Yermolovich	.byte	1                               # DW_CHILDREN_yes
68*bb6a4850SAlexander Yermolovich	.byte	54                              # DW_AT_calling_convention
69*bb6a4850SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
70*bb6a4850SAlexander Yermolovich	.byte	3                               # DW_AT_name
71*bb6a4850SAlexander Yermolovich	.byte	14                              # DW_FORM_strp
72*bb6a4850SAlexander Yermolovich	.byte	11                              # DW_AT_byte_size
73*bb6a4850SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
74*bb6a4850SAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
75*bb6a4850SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
76*bb6a4850SAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
77*bb6a4850SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
78*bb6a4850SAlexander Yermolovich	.byte	0                               # EOM(1)
79*bb6a4850SAlexander Yermolovich	.byte	0                               # EOM(2)
80*bb6a4850SAlexander Yermolovich	.byte	3                               # Abbreviation Code
81*bb6a4850SAlexander Yermolovich	.byte	13                              # DW_TAG_member
82*bb6a4850SAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
83*bb6a4850SAlexander Yermolovich	.byte	3                               # DW_AT_name
84*bb6a4850SAlexander Yermolovich	.byte	14                              # DW_FORM_strp
85*bb6a4850SAlexander Yermolovich	.byte	73                              # DW_AT_type
86*bb6a4850SAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
87*bb6a4850SAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
88*bb6a4850SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
89*bb6a4850SAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
90*bb6a4850SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
91*bb6a4850SAlexander Yermolovich	.byte	56                              # DW_AT_data_member_location
92*bb6a4850SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
93*bb6a4850SAlexander Yermolovich	.byte	0                               # EOM(1)
94*bb6a4850SAlexander Yermolovich	.byte	0                               # EOM(2)
95*bb6a4850SAlexander Yermolovich	.byte	4                               # Abbreviation Code
96*bb6a4850SAlexander Yermolovich	.byte	36                              # DW_TAG_base_type
97*bb6a4850SAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
98*bb6a4850SAlexander Yermolovich	.byte	3                               # DW_AT_name
99*bb6a4850SAlexander Yermolovich	.byte	14                              # DW_FORM_strp
100*bb6a4850SAlexander Yermolovich	.byte	62                              # DW_AT_encoding
101*bb6a4850SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
102*bb6a4850SAlexander Yermolovich	.byte	11                              # DW_AT_byte_size
103*bb6a4850SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
104*bb6a4850SAlexander Yermolovich	.byte	0                               # EOM(1)
105*bb6a4850SAlexander Yermolovich	.byte	0                               # EOM(2)
106*bb6a4850SAlexander Yermolovich	.byte	5                               # Abbreviation Code
107*bb6a4850SAlexander Yermolovich	.byte	17                              # DW_TAG_compile_unit
108*bb6a4850SAlexander Yermolovich	.byte	1                               # DW_CHILDREN_yes
109*bb6a4850SAlexander Yermolovich	.byte	37                              # DW_AT_producer
110*bb6a4850SAlexander Yermolovich	.byte	14                              # DW_FORM_strp
111*bb6a4850SAlexander Yermolovich	.byte	19                              # DW_AT_language
112*bb6a4850SAlexander Yermolovich	.byte	5                               # DW_FORM_data2
113*bb6a4850SAlexander Yermolovich	.byte	3                               # DW_AT_name
114*bb6a4850SAlexander Yermolovich	.byte	14                              # DW_FORM_strp
115*bb6a4850SAlexander Yermolovich	.byte	16                              # DW_AT_stmt_list
116*bb6a4850SAlexander Yermolovich	.byte	23                              # DW_FORM_sec_offset
117*bb6a4850SAlexander Yermolovich	.byte	27                              # DW_AT_comp_dir
118*bb6a4850SAlexander Yermolovich	.byte	14                              # DW_FORM_strp
119*bb6a4850SAlexander Yermolovich	.byte	0                               # EOM(1)
120*bb6a4850SAlexander Yermolovich	.byte	0                               # EOM(2)
121*bb6a4850SAlexander Yermolovich	.byte	6                               # Abbreviation Code
122*bb6a4850SAlexander Yermolovich	.byte	52                              # DW_TAG_variable
123*bb6a4850SAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
124*bb6a4850SAlexander Yermolovich	.byte	3                               # DW_AT_name
125*bb6a4850SAlexander Yermolovich	.byte	14                              # DW_FORM_strp
126*bb6a4850SAlexander Yermolovich	.byte	73                              # DW_AT_type
127*bb6a4850SAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
128*bb6a4850SAlexander Yermolovich	.byte	63                              # DW_AT_external
129*bb6a4850SAlexander Yermolovich	.byte	25                              # DW_FORM_flag_present
130*bb6a4850SAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
131*bb6a4850SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
132*bb6a4850SAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
133*bb6a4850SAlexander Yermolovich	.byte	11                              # DW_FORM_data1
134*bb6a4850SAlexander Yermolovich	.byte	2                               # DW_AT_location
135*bb6a4850SAlexander Yermolovich	.byte	24                              # DW_FORM_exprloc
136*bb6a4850SAlexander Yermolovich	.byte	0                               # EOM(1)
137*bb6a4850SAlexander Yermolovich	.byte	0                               # EOM(2)
138*bb6a4850SAlexander Yermolovich	.byte	7                               # Abbreviation Code
139*bb6a4850SAlexander Yermolovich	.byte	19                              # DW_TAG_structure_type
140*bb6a4850SAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
141*bb6a4850SAlexander Yermolovich	.byte	60                              # DW_AT_declaration
142*bb6a4850SAlexander Yermolovich	.byte	25                              # DW_FORM_flag_present
143*bb6a4850SAlexander Yermolovich	.byte	105                             # DW_AT_signature
144*bb6a4850SAlexander Yermolovich	.byte	32                              # DW_FORM_ref_sig8
145*bb6a4850SAlexander Yermolovich	.byte	0                               # EOM(1)
146*bb6a4850SAlexander Yermolovich	.byte	0                               # EOM(2)
147*bb6a4850SAlexander Yermolovich	.byte	0                               # EOM(3)
148*bb6a4850SAlexander Yermolovich	.section	.debug_info,"",@progbits
149*bb6a4850SAlexander Yermolovich.Lcu_begin0:
150*bb6a4850SAlexander Yermolovich	.long	.Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit
151*bb6a4850SAlexander Yermolovich.Ldebug_info_start1:
152*bb6a4850SAlexander Yermolovich	.short	4                               # DWARF version number
153*bb6a4850SAlexander Yermolovich	.long	.debug_abbrev                   # Offset Into Abbrev. Section
154*bb6a4850SAlexander Yermolovich	.byte	8                               # Address Size (in bytes)
155*bb6a4850SAlexander Yermolovich	.byte	5                               # Abbrev [5] 0xb:0x32 DW_TAG_compile_unit
156*bb6a4850SAlexander Yermolovich	.long	.Linfo_string0                  # DW_AT_producer
157*bb6a4850SAlexander Yermolovich	.short	33                              # DW_AT_language
158*bb6a4850SAlexander Yermolovich	.long	.Linfo_string1                  # DW_AT_name
159*bb6a4850SAlexander Yermolovich	.long	.Lline_table_start0             # DW_AT_stmt_list
160*bb6a4850SAlexander Yermolovich	.long	.Linfo_string2                  # DW_AT_comp_dir
161*bb6a4850SAlexander Yermolovich	.byte	6                               # Abbrev [6] 0x1e:0x15 DW_TAG_variable
162*bb6a4850SAlexander Yermolovich	.long	.Linfo_string3                  # DW_AT_name
163*bb6a4850SAlexander Yermolovich	.long	51                              # DW_AT_type
164*bb6a4850SAlexander Yermolovich                                        # DW_AT_external
165*bb6a4850SAlexander Yermolovich	.byte	1                               # DW_AT_decl_file
166*bb6a4850SAlexander Yermolovich	.byte	4                               # DW_AT_decl_line
167*bb6a4850SAlexander Yermolovich	.byte	9                               # DW_AT_location
168*bb6a4850SAlexander Yermolovich	.byte	3
169*bb6a4850SAlexander Yermolovich	.quad	f2
170*bb6a4850SAlexander Yermolovich	.byte	7                               # Abbrev [7] 0x33:0x9 DW_TAG_structure_type
171*bb6a4850SAlexander Yermolovich                                        # DW_AT_declaration
172*bb6a4850SAlexander Yermolovich	.quad	7448148824980338162             # DW_AT_signature
173*bb6a4850SAlexander Yermolovich	.byte	0                               # End Of Children Mark
174*bb6a4850SAlexander Yermolovich.Ldebug_info_end1:
175*bb6a4850SAlexander Yermolovich	.section	.debug_str,"MS",@progbits,1
176*bb6a4850SAlexander Yermolovich.Linfo_string0:
177*bb6a4850SAlexander Yermolovich	.asciz	"clang version 18.0.0git"       # string offset=0
178*bb6a4850SAlexander Yermolovich.Linfo_string1:
179*bb6a4850SAlexander Yermolovich	.asciz	"helper.cpp"                    # string offset=24
180*bb6a4850SAlexander Yermolovich.Linfo_string2:
181*bb6a4850SAlexander Yermolovich	.asciz	"/test" # string offset=35
182*bb6a4850SAlexander Yermolovich.Linfo_string3:
183*bb6a4850SAlexander Yermolovich	.asciz	"f2"                            # string offset=73
184*bb6a4850SAlexander Yermolovich.Linfo_string4:
185*bb6a4850SAlexander Yermolovich	.asciz	"i"                             # string offset=76
186*bb6a4850SAlexander Yermolovich.Linfo_string5:
187*bb6a4850SAlexander Yermolovich	.asciz	"int"                           # string offset=78
188*bb6a4850SAlexander Yermolovich.Linfo_string6:
189*bb6a4850SAlexander Yermolovich	.asciz	"Foo"                           # string offset=82
190*bb6a4850SAlexander Yermolovich	.ident	"clang version 18.0.0git"
191*bb6a4850SAlexander Yermolovich	.section	".note.GNU-stack","",@progbits
192*bb6a4850SAlexander Yermolovich	.addrsig
193*bb6a4850SAlexander Yermolovich	.section	.debug_line,"",@progbits
194*bb6a4850SAlexander Yermolovich.Lline_table_start0:
195