Fission support for multiple CUs per DWO file
[external/binutils.git] / gdb / testsuite / gdb.dwarf2 / fission-multi-cu.S
1 /* This testcase is part of GDB, the GNU debugger.
2
3    Copyright 2012-2017 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 file was created by doing:
19
20    clang fission-multi-cu*.c -g -fno-split-dwarf-inlining -emit-llvm -S -c
21    llvm-link fission-multi-cu*.ll -S -o fission-multi-cu.ll
22    clang-tot fission-multi-cu.ll -gsplit-dwarf -S
23
24    and then massaging the output.
25 */
26         .text
27         .file   "llvm-link"
28         .globl  func
29         .p2align        4, 0x90
30         .type   func,@function
31 func:                                   # @func
32 .Lfunc_begin0:
33         .file   1 "fission-multi-cu1.c"
34         .loc    1 20 0                  # fission-multi-cu1.c:20:0
35         .cfi_startproc
36 # BB#0:                                 # %entry
37         pushq   %rbp
38         .cfi_def_cfa_offset 16
39         .cfi_offset %rbp, -16
40         movq    %rsp, %rbp
41         .cfi_def_cfa_register %rbp
42         movl    %edi, -4(%rbp)
43         .loc    1 21 10 prologue_end    # fission-multi-cu1.c:21:10
44         movl    -4(%rbp), %edi
45         .loc    1 21 14 is_stmt 0       # fission-multi-cu1.c:21:14
46         addl    $1, %edi
47         .loc    1 21 3                  # fission-multi-cu1.c:21:3
48         movl    %edi, %eax
49         popq    %rbp
50         retq
51 .Lfunc_end0:
52         .size   func, .Lfunc_end0-func
53         .cfi_endproc
54
55         .globl  main
56         .p2align        4, 0x90
57         .type   main,@function
58 main:                                   # @main
59 .Lfunc_begin1:
60         .file   2 "fission-multi-cu2.c"
61         .loc    2 23 0 is_stmt 1        # fission-multi-cu2.c:23:0
62         .cfi_startproc
63 # BB#0:                                 # %entry
64         pushq   %rbp
65         .cfi_def_cfa_offset 16
66         .cfi_offset %rbp, -16
67         movq    %rsp, %rbp
68         .cfi_def_cfa_register %rbp
69         movl    $4294967295, %edi       # imm = 0xFFFFFFFF
70         .loc    2 24 3 prologue_end     # fission-multi-cu2.c:24:3
71         movb    $0, %al
72         callq   func
73         xorl    %eax, %eax
74         .loc    2 25 1                  # fission-multi-cu2.c:25:1
75         popq    %rbp
76         retq
77 .Lfunc_end1:
78         .size   main, .Lfunc_end1-main
79         .cfi_endproc
80
81         .section        .debug_str,"MS",@progbits,1
82 .Lskel_string0:
83         .asciz  "fission-multi-cu.dwo"  # string offset=0
84 .Lskel_string1:
85         .asciz  "/tmp/src/gdb/testsuite" # string offset=21
86         .section        .debug_loc.dwo,"",@progbits
87         .section        .debug_abbrev,"",@progbits
88         .byte   1                       # Abbreviation Code
89         .byte   17                      # DW_TAG_compile_unit
90         .byte   0                       # DW_CHILDREN_no
91         .byte   16                      # DW_AT_stmt_list
92         .byte   23                      # DW_FORM_sec_offset
93         .ascii  "\260B"                 # DW_AT_GNU_dwo_name
94         .byte   14                      # DW_FORM_strp
95         .byte   27                      # DW_AT_comp_dir
96         .byte   14                      # DW_FORM_strp
97         .ascii  "\261B"                 # DW_AT_GNU_dwo_id
98         .byte   7                       # DW_FORM_data8
99         .ascii  "\263B"                 # DW_AT_GNU_addr_base
100         .byte   23                      # DW_FORM_sec_offset
101         .byte   17                      # DW_AT_low_pc
102         .byte   1                       # DW_FORM_addr
103         .byte   18                      # DW_AT_high_pc
104         .byte   6                       # DW_FORM_data4
105         .byte   0                       # EOM(1)
106         .byte   0                       # EOM(2)
107         .byte   0                       # EOM(3)
108         .section        .debug_info,"",@progbits
109 .Lcu_begin0:
110         .long   44                      # Length of Unit
111         .short  4                       # DWARF version number
112         .long   .debug_abbrev           # Offset Into Abbrev. Section
113         .byte   8                       # Address Size (in bytes)
114         .byte   1                       # Abbrev [1] 0xb:0x25 DW_TAG_compile_unit
115         .long   .Lline_table_start0     # DW_AT_stmt_list
116         .long   .Lskel_string0          # DW_AT_GNU_dwo_name
117         .long   .Lskel_string1          # DW_AT_comp_dir
118         .quad   7615852067747431413     # DW_AT_GNU_dwo_id
119         .long   .debug_addr             # DW_AT_GNU_addr_base
120         .quad   .Lfunc_begin0           # DW_AT_low_pc
121         .long   .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
122 .Lcu_begin1:
123         .long   44                      # Length of Unit
124         .short  4                       # DWARF version number
125         .long   .debug_abbrev           # Offset Into Abbrev. Section
126         .byte   8                       # Address Size (in bytes)
127         .byte   1                       # Abbrev [1] 0xb:0x25 DW_TAG_compile_unit
128         .long   .Lline_table_start0     # DW_AT_stmt_list
129         .long   .Lskel_string0          # DW_AT_GNU_dwo_name
130         .long   .Lskel_string1          # DW_AT_comp_dir
131         .quad   2037650261599692324     # DW_AT_GNU_dwo_id
132         .long   .debug_addr             # DW_AT_GNU_addr_base
133         .quad   .Lfunc_begin1           # DW_AT_low_pc
134         .long   .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc
135         .section        .debug_ranges,"",@progbits
136         .section        .debug_macinfo,"",@progbits
137 .Lcu_macro_begin1:
138 .Lcu_macro_begin3:
139         .byte   0                       # End Of Macro List Mark
140         .section        .debug_str.dwo,"MS",@progbits,1
141 .Linfo_string0:
142         .asciz  "fission-multi-cu.dwo"  # string offset=0
143 .Linfo_string1:
144         .asciz  "clang version 5.0.0 (trunk 302855) (llvm/trunk 302853)" # string offset=21
145 .Linfo_string2:
146         .asciz  "fission-multi-cu1.c" # string offset=76
147 .Linfo_string3:
148         .asciz  "fission-multi-cu2.c" # string offset=96
149 .Linfo_string4:
150         .asciz  "func"                  # string offset=116
151 .Linfo_string5:
152         .asciz  "int"                   # string offset=121
153 .Linfo_string6:
154         .asciz  "main"                  # string offset=125
155 .Linfo_string7:
156         .asciz  "arg"                   # string offset=130
157         .section        .debug_str_offsets.dwo,"",@progbits
158         .long   0
159         .long   21
160         .long   76
161         .long   96
162         .long   116
163         .long   121
164         .long   125
165         .long   130
166         .section        .debug_info.dwo,"",@progbits
167         .long   53                      # Length of Unit
168         .short  4                       # DWARF version number
169         .long   0                       # Offset Into Abbrev. Section
170         .byte   8                       # Address Size (in bytes)
171         .byte   1                       # Abbrev [1] 0xb:0x2e DW_TAG_compile_unit
172         .byte   0                       # DW_AT_GNU_dwo_name
173         .byte   1                       # DW_AT_producer
174         .short  12                      # DW_AT_language
175         .byte   2                       # DW_AT_name
176         .quad   7615852067747431413     # DW_AT_GNU_dwo_id
177         .byte   2                       # Abbrev [2] 0x19:0x1b DW_TAG_subprogram
178         .byte   0                       # DW_AT_low_pc
179         .long   .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
180         .byte   1                       # DW_AT_frame_base
181         .byte   86
182         .byte   4                       # DW_AT_name
183         .byte   1                       # DW_AT_decl_file
184         .byte   19                      # DW_AT_decl_line
185                                         # DW_AT_prototyped
186         .long   52                      # DW_AT_type
187                                         # DW_AT_external
188         .byte   3                       # Abbrev [3] 0x28:0xb DW_TAG_formal_parameter
189         .byte   2                       # DW_AT_location
190         .byte   145
191         .byte   124
192         .byte   7                       # DW_AT_name
193         .byte   1                       # DW_AT_decl_file
194         .byte   19                      # DW_AT_decl_line
195         .long   52                      # DW_AT_type
196         .byte   0                       # End Of Children Mark
197         .byte   4                       # Abbrev [4] 0x34:0x4 DW_TAG_base_type
198         .byte   5                       # DW_AT_name
199         .byte   5                       # DW_AT_encoding
200         .byte   4                       # DW_AT_byte_size
201         .byte   0                       # End Of Children Mark
202         .long   41                      # Length of Unit
203         .short  4                       # DWARF version number
204         .long   0                       # Offset Into Abbrev. Section
205         .byte   8                       # Address Size (in bytes)
206         .byte   1                       # Abbrev [1] 0xb:0x22 DW_TAG_compile_unit
207         .byte   0                       # DW_AT_GNU_dwo_name
208         .byte   1                       # DW_AT_producer
209         .short  12                      # DW_AT_language
210         .byte   3                       # DW_AT_name
211         .quad   2037650261599692324     # DW_AT_GNU_dwo_id
212         .byte   5                       # Abbrev [5] 0x19:0xf DW_TAG_subprogram
213         .byte   1                       # DW_AT_low_pc
214         .long   .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc
215         .byte   1                       # DW_AT_frame_base
216         .byte   86
217         .byte   6                       # DW_AT_name
218         .byte   2                       # DW_AT_decl_file
219         .byte   22                      # DW_AT_decl_line
220         .long   40                      # DW_AT_type
221                                         # DW_AT_external
222         .byte   4                       # Abbrev [4] 0x28:0x4 DW_TAG_base_type
223         .byte   5                       # DW_AT_name
224         .byte   5                       # DW_AT_encoding
225         .byte   4                       # DW_AT_byte_size
226         .byte   0                       # End Of Children Mark
227         .section        .debug_abbrev.dwo,"",@progbits
228         .byte   1                       # Abbreviation Code
229         .byte   17                      # DW_TAG_compile_unit
230         .byte   1                       # DW_CHILDREN_yes
231         .ascii  "\260B"                 # DW_AT_GNU_dwo_name
232         .ascii  "\202>"                 # DW_FORM_GNU_str_index
233         .byte   37                      # DW_AT_producer
234         .ascii  "\202>"                 # DW_FORM_GNU_str_index
235         .byte   19                      # DW_AT_language
236         .byte   5                       # DW_FORM_data2
237         .byte   3                       # DW_AT_name
238         .ascii  "\202>"                 # DW_FORM_GNU_str_index
239         .ascii  "\261B"                 # DW_AT_GNU_dwo_id
240         .byte   7                       # DW_FORM_data8
241         .byte   0                       # EOM(1)
242         .byte   0                       # EOM(2)
243         .byte   2                       # Abbreviation Code
244         .byte   46                      # DW_TAG_subprogram
245         .byte   1                       # DW_CHILDREN_yes
246         .byte   17                      # DW_AT_low_pc
247         .ascii  "\201>"                 # DW_FORM_GNU_addr_index
248         .byte   18                      # DW_AT_high_pc
249         .byte   6                       # DW_FORM_data4
250         .byte   64                      # DW_AT_frame_base
251         .byte   24                      # DW_FORM_exprloc
252         .byte   3                       # DW_AT_name
253         .ascii  "\202>"                 # DW_FORM_GNU_str_index
254         .byte   58                      # DW_AT_decl_file
255         .byte   11                      # DW_FORM_data1
256         .byte   59                      # DW_AT_decl_line
257         .byte   11                      # DW_FORM_data1
258         .byte   39                      # DW_AT_prototyped
259         .byte   25                      # DW_FORM_flag_present
260         .byte   73                      # DW_AT_type
261         .byte   19                      # DW_FORM_ref4
262         .byte   63                      # DW_AT_external
263         .byte   25                      # DW_FORM_flag_present
264         .byte   0                       # EOM(1)
265         .byte   0                       # EOM(2)
266         .byte   3                       # Abbreviation Code
267         .byte   5                       # DW_TAG_formal_parameter
268         .byte   0                       # DW_CHILDREN_no
269         .byte   2                       # DW_AT_location
270         .byte   24                      # DW_FORM_exprloc
271         .byte   3                       # DW_AT_name
272         .ascii  "\202>"                 # DW_FORM_GNU_str_index
273         .byte   58                      # DW_AT_decl_file
274         .byte   11                      # DW_FORM_data1
275         .byte   59                      # DW_AT_decl_line
276         .byte   11                      # DW_FORM_data1
277         .byte   73                      # DW_AT_type
278         .byte   19                      # DW_FORM_ref4
279         .byte   0                       # EOM(1)
280         .byte   0                       # EOM(2)
281         .byte   4                       # Abbreviation Code
282         .byte   36                      # DW_TAG_base_type
283         .byte   0                       # DW_CHILDREN_no
284         .byte   3                       # DW_AT_name
285         .ascii  "\202>"                 # DW_FORM_GNU_str_index
286         .byte   62                      # DW_AT_encoding
287         .byte   11                      # DW_FORM_data1
288         .byte   11                      # DW_AT_byte_size
289         .byte   11                      # DW_FORM_data1
290         .byte   0                       # EOM(1)
291         .byte   0                       # EOM(2)
292         .byte   5                       # Abbreviation Code
293         .byte   46                      # DW_TAG_subprogram
294         .byte   0                       # DW_CHILDREN_no
295         .byte   17                      # DW_AT_low_pc
296         .ascii  "\201>"                 # DW_FORM_GNU_addr_index
297         .byte   18                      # DW_AT_high_pc
298         .byte   6                       # DW_FORM_data4
299         .byte   64                      # DW_AT_frame_base
300         .byte   24                      # DW_FORM_exprloc
301         .byte   3                       # DW_AT_name
302         .ascii  "\202>"                 # DW_FORM_GNU_str_index
303         .byte   58                      # DW_AT_decl_file
304         .byte   11                      # DW_FORM_data1
305         .byte   59                      # DW_AT_decl_line
306         .byte   11                      # DW_FORM_data1
307         .byte   73                      # DW_AT_type
308         .byte   19                      # DW_FORM_ref4
309         .byte   63                      # DW_AT_external
310         .byte   25                      # DW_FORM_flag_present
311         .byte   0                       # EOM(1)
312         .byte   0                       # EOM(2)
313         .byte   0                       # EOM(3)
314         .section        .debug_line.dwo,"",@progbits
315 .Ltmp4:
316         .long   (.Ltmp5-.Ltmp4)-4
317         .short  2
318         .long   (.Ltmp6-.Ltmp4)-10
319         .byte   1
320         .byte   1
321         .byte   -5
322         .byte   14
323         .byte   1
324         .byte   0
325         .byte   0
326 .Ltmp6:
327 .Ltmp5:
328         .section        .debug_addr,"",@progbits
329         .quad   .Lfunc_begin0
330         .quad   .Lfunc_begin1
331         .section        .debug_pubnames,"",@progbits
332         .long   .LpubNames_end0-.LpubNames_begin0 # Length of Public Names Info
333 .LpubNames_begin0:
334         .short  2                       # DWARF Version
335         .long   .Lcu_begin0             # Offset of Compilation Unit Info
336         .long   48                      # Compilation Unit Length
337         .long   25                      # DIE offset
338         .asciz  "func"                  # External Name
339         .long   0                       # End Mark
340 .LpubNames_end0:
341         .long   .LpubNames_end1-.LpubNames_begin1 # Length of Public Names Info
342 .LpubNames_begin1:
343         .short  2                       # DWARF Version
344         .long   .Lcu_begin1             # Offset of Compilation Unit Info
345         .long   48                      # Compilation Unit Length
346         .long   25                      # DIE offset
347         .asciz  "main"                  # External Name
348         .long   0                       # End Mark
349 .LpubNames_end1:
350         .section        .debug_pubtypes,"",@progbits
351         .long   .LpubTypes_end0-.LpubTypes_begin0 # Length of Public Types Info
352 .LpubTypes_begin0:
353         .short  2                       # DWARF Version
354         .long   .Lcu_begin0             # Offset of Compilation Unit Info
355         .long   48                      # Compilation Unit Length
356         .long   52                      # DIE offset
357         .asciz  "int"                   # External Name
358         .long   0                       # End Mark
359 .LpubTypes_end0:
360         .long   .LpubTypes_end1-.LpubTypes_begin1 # Length of Public Types Info
361 .LpubTypes_begin1:
362         .short  2                       # DWARF Version
363         .long   .Lcu_begin1             # Offset of Compilation Unit Info
364         .long   48                      # Compilation Unit Length
365         .long   40                      # DIE offset
366         .asciz  "int"                   # External Name
367         .long   0                       # End Mark
368 .LpubTypes_end1:
369
370         .ident  "clang version 5.0.0 (trunk 302855) (llvm/trunk 302853)"
371         .ident  "clang version 5.0.0 (trunk 302855) (llvm/trunk 302853)"
372         .section        ".note.GNU-stack","",@progbits
373         .section        .debug_line,"",@progbits
374 .Lline_table_start0: