1/* This testcase is part of GDB, the GNU debugger.
2
3   Copyright 2014-2020 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
44main:                                   # @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:
282