tizen 2.4 release
[external/binutils.git] / gdb / testsuite / gdb.dwarf2 / dw2-single-line-discriminators.S
1 /* This testcase is part of GDB, the GNU debugger.
2
3    Copyright 2014 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: