c0d2cae58f6c63ff0ee56b064a98c6a393295691
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.dwarf2 / dw2-single-line-discriminators.S
1 /* This testcase is part of GDB, the GNU debugger.
2
3 Copyright 2014-2021 Free Software Foundation, Inc.
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
17
18 /* This was made from dw2-single-line-discriminators.c using
19 clang -dA -S -g
20 and then hand-editing the assembly a bit (simplify paths,
21 tweak so gas accepts it). */
22
23 .text
24 .file "dw2-single-line-discriminators.c"
25 .section .debug_info,"",@progbits
26 .Lsection_info:
27 .section .debug_abbrev,"",@progbits
28 .Lsection_abbrev:
29 .section .debug_line,"",@progbits
30 .Lsection_line:
31 .section .debug_pubnames,"",@progbits
32 .section .debug_pubtypes,"",@progbits
33 .section .debug_str,"MS",@progbits,1
34 .Linfo_string:
35 .section .debug_loc,"",@progbits
36 .Lsection_debug_loc:
37 .section .debug_ranges,"",@progbits
38 .Ldebug_range:
39 .file 1 "gdb.dwarf2/dw2-single-line-discriminators.c"
40 .text
41 .globl main
42 .align 16, 0x90
43 .type main,@function
44 main: # @main
45 .Lfunc_begin0:
46 .loc 1 22 0 # dw2-single-line-discriminators.c:22:0
47 .cfi_startproc
48 # BB#0:
49 pushq %rbp
50 .Ltmp0:
51 .cfi_def_cfa_offset 16
52 .Ltmp1:
53 .cfi_offset %rbp, -16
54 movq %rsp, %rbp
55 .Ltmp2:
56 .cfi_def_cfa_register %rbp
57 movl $0, -4(%rbp)
58 .loc 1 26 3 prologue_end # dw2-single-line-discriminators.c:26:3
59 .Ltmp3:
60 movl $0, x
61 .loc 1 28 8 # dw2-single-line-discriminators.c:28:8
62 .Ltmp4:
63 movl $0, -8(%rbp)
64 .LBB0_1: # =>This Inner Loop Header: Depth=1
65 .loc 1 28 8 discriminator 4 # dw2-single-line-discriminators.c:28:8
66 .Ltmp5:
67 cmpl $10, -8(%rbp)
68 jge .LBB0_4
69 .Ltmp6:
70 # BB#2: # in Loop: Header=BB0_1 Depth=1
71 .loc 1 28 28 discriminator 2 # dw2-single-line-discriminators.c:28:28
72 jmp .LBB0_3
73 .Ltmp7:
74 .LBB0_3: # in Loop: Header=BB0_1 Depth=1
75 .loc 1 28 23 discriminator 3 # dw2-single-line-discriminators.c:28:23
76 movl -8(%rbp), %eax
77 addl $1, %eax
78 movl %eax, -8(%rbp)
79 jmp .LBB0_1
80 .Ltmp8:
81 .LBB0_4:
82 movl $0, %eax
83 .loc 1 30 3 # dw2-single-line-discriminators.c:30:3
84 popq %rbp
85 retq
86 .Ltmp9:
87 .Ltmp10:
88 .size main, .Ltmp10-main
89 .Lfunc_end0:
90 .cfi_endproc
91
92 .type x,@object # @x
93 .comm x,4,4
94 .Ldebug_end1:
95 .section .debug_str,"MS",@progbits,1
96 .Linfo_string0:
97 .asciz "clang version (trunk r215195)"
98 .Linfo_string1:
99 .asciz "dw2-single-line-discriminators.c"
100 .Linfo_string2:
101 .asciz "/tmp/obj/gdb/testsuite"
102 .Linfo_string3:
103 .asciz "x"
104 .Linfo_string4:
105 .asciz "int"
106 .Linfo_string5:
107 .asciz "main"
108 .Linfo_string6:
109 .asciz "i"
110 .section .debug_info,"",@progbits
111 .L.debug_info_begin0:
112 .long 108 # Length of Unit
113 .short 4 # DWARF version number
114 .long .Lsection_abbrev # Offset Into Abbrev. Section
115 .byte 8 # Address Size (in bytes)
116 .byte 1 # Abbrev [1] 0xb:0x65 DW_TAG_compile_unit
117 .long .Linfo_string0 # DW_AT_producer
118 .short 12 # DW_AT_language
119 .long .Linfo_string1 # DW_AT_name
120 .long .Lline_table_start0 # DW_AT_stmt_list
121 .long .Linfo_string2 # DW_AT_comp_dir
122 .quad .Lfunc_begin0 # DW_AT_low_pc
123 .Lset0 = .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
124 .long .Lset0
125 .byte 2 # Abbrev [2] 0x2a:0x15 DW_TAG_variable
126 .long .Linfo_string3 # DW_AT_name
127 .long 63 # DW_AT_type
128 # DW_AT_external
129 .byte 1 # DW_AT_decl_file
130 .byte 18 # DW_AT_decl_line
131 .byte 9 # DW_AT_location
132 .byte 3
133 .quad x
134 .byte 3 # Abbrev [3] 0x3f:0x7 DW_TAG_base_type
135 .long .Linfo_string4 # DW_AT_name
136 .byte 5 # DW_AT_encoding
137 .byte 4 # DW_AT_byte_size
138 .byte 4 # Abbrev [4] 0x46:0x29 DW_TAG_subprogram
139 .quad .Lfunc_begin0 # DW_AT_low_pc
140 .Lset1 = .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
141 .long .Lset1
142 .byte 1 # DW_AT_frame_base
143 .byte 86
144 .long .Linfo_string5 # DW_AT_name
145 .byte 1 # DW_AT_decl_file
146 .byte 21 # DW_AT_decl_line
147 .long 63 # DW_AT_type
148 # DW_AT_external
149 .byte 1 # DW_AT_accessibility
150 # DW_ACCESS_public
151 .byte 5 # Abbrev [5] 0x60:0xe DW_TAG_variable
152 .byte 2 # DW_AT_location
153 .byte 145
154 .byte 120
155 .long .Linfo_string6 # DW_AT_name
156 .byte 1 # DW_AT_decl_file
157 .byte 23 # DW_AT_decl_line
158 .long 63 # DW_AT_type
159 .byte 0 # End Of Children Mark
160 .byte 0 # End Of Children Mark
161 .L.debug_info_end0:
162 .section .debug_abbrev,"",@progbits
163 .byte 1 # Abbreviation Code
164 .byte 17 # DW_TAG_compile_unit
165 .byte 1 # DW_CHILDREN_yes
166 .byte 37 # DW_AT_producer
167 .byte 14 # DW_FORM_strp
168 .byte 19 # DW_AT_language
169 .byte 5 # DW_FORM_data2
170 .byte 3 # DW_AT_name
171 .byte 14 # DW_FORM_strp
172 .byte 16 # DW_AT_stmt_list
173 .byte 23 # DW_FORM_sec_offset
174 .byte 27 # DW_AT_comp_dir
175 .byte 14 # DW_FORM_strp
176 .byte 17 # DW_AT_low_pc
177 .byte 1 # DW_FORM_addr
178 .byte 18 # DW_AT_high_pc
179 .byte 6 # DW_FORM_data4
180 .byte 0 # EOM(1)
181 .byte 0 # EOM(2)
182 .byte 2 # Abbreviation Code
183 .byte 52 # DW_TAG_variable
184 .byte 0 # DW_CHILDREN_no
185 .byte 3 # DW_AT_name
186 .byte 14 # DW_FORM_strp
187 .byte 73 # DW_AT_type
188 .byte 19 # DW_FORM_ref4
189 .byte 63 # DW_AT_external
190 .byte 25 # DW_FORM_flag_present
191 .byte 58 # DW_AT_decl_file
192 .byte 11 # DW_FORM_data1
193 .byte 59 # DW_AT_decl_line
194 .byte 11 # DW_FORM_data1
195 .byte 2 # DW_AT_location
196 .byte 24 # DW_FORM_exprloc
197 .byte 0 # EOM(1)
198 .byte 0 # EOM(2)
199 .byte 3 # Abbreviation Code
200 .byte 36 # DW_TAG_base_type
201 .byte 0 # DW_CHILDREN_no
202 .byte 3 # DW_AT_name
203 .byte 14 # DW_FORM_strp
204 .byte 62 # DW_AT_encoding
205 .byte 11 # DW_FORM_data1
206 .byte 11 # DW_AT_byte_size
207 .byte 11 # DW_FORM_data1
208 .byte 0 # EOM(1)
209 .byte 0 # EOM(2)
210 .byte 4 # Abbreviation Code
211 .byte 46 # DW_TAG_subprogram
212 .byte 1 # DW_CHILDREN_yes
213 .byte 17 # DW_AT_low_pc
214 .byte 1 # DW_FORM_addr
215 .byte 18 # DW_AT_high_pc
216 .byte 6 # DW_FORM_data4
217 .byte 64 # DW_AT_frame_base
218 .byte 24 # DW_FORM_exprloc
219 .byte 3 # DW_AT_name
220 .byte 14 # DW_FORM_strp
221 .byte 58 # DW_AT_decl_file
222 .byte 11 # DW_FORM_data1
223 .byte 59 # DW_AT_decl_line
224 .byte 11 # DW_FORM_data1
225 .byte 73 # DW_AT_type
226 .byte 19 # DW_FORM_ref4
227 .byte 63 # DW_AT_external
228 .byte 25 # DW_FORM_flag_present
229 .byte 50 # DW_AT_accessibility
230 .byte 11 # DW_FORM_data1
231 .byte 0 # EOM(1)
232 .byte 0 # EOM(2)
233 .byte 5 # Abbreviation Code
234 .byte 52 # DW_TAG_variable
235 .byte 0 # DW_CHILDREN_no
236 .byte 2 # DW_AT_location
237 .byte 24 # DW_FORM_exprloc
238 .byte 3 # DW_AT_name
239 .byte 14 # DW_FORM_strp
240 .byte 58 # DW_AT_decl_file
241 .byte 11 # DW_FORM_data1
242 .byte 59 # DW_AT_decl_line
243 .byte 11 # DW_FORM_data1
244 .byte 73 # DW_AT_type
245 .byte 19 # DW_FORM_ref4
246 .byte 0 # EOM(1)
247 .byte 0 # EOM(2)
248 .byte 0 # EOM(3)
249 .section .debug_ranges,"",@progbits
250 .section .debug_loc,"",@progbits
251 .section .debug_pubnames,"",@progbits
252 .Lset2 = .LpubNames_end0-.LpubNames_begin0 # Length of Public Names Info
253 .long .Lset2
254 .LpubNames_begin0:
255 .short 2 # DWARF Version
256 .long .L.debug_info_begin0 # Offset of Compilation Unit Info
257 .Lset3 = .L.debug_info_end0-.L.debug_info_begin0 # Compilation Unit Length
258 .long .Lset3
259 .long 70 # DIE offset
260 .asciz "main" # External Name
261 .long 42 # DIE offset
262 .asciz "x" # External Name
263 .long 0 # End Mark
264 .LpubNames_end0:
265 .section .debug_pubtypes,"",@progbits
266 .Lset4 = .LpubTypes_end0-.LpubTypes_begin0 # Length of Public Types Info
267 .long .Lset4
268 .LpubTypes_begin0:
269 .short 2 # DWARF Version
270 .long .L.debug_info_begin0 # Offset of Compilation Unit Info
271 .Lset5 = .L.debug_info_end0-.L.debug_info_begin0 # Compilation Unit Length
272 .long .Lset5
273 .long 63 # DIE offset
274 .asciz "int" # External Name
275 .long 0 # End Mark
276 .LpubTypes_end0:
277
278 .ident "clang version (trunk r215195)"
279 .section ".note.GNU-stack","",@progbits
280 .section .debug_line,"",@progbits
281 .Lline_table_start0:
This page took 0.034287 seconds and 3 git commands to generate.