1# Test .debug_info can reference .debug_ranges entries without ordering the
2# offsets strictly as increasing.
3
4	.text
5start:
6	.byte	1
7sub:
8	.byte	2
9end:
10
11	.section	.debug_ranges,"",%progbits
12range:
13
14range_sub:
15	.4byte	sub, end
16	.4byte	0, 0	;# range terminator
17
18range_cu:
19	.4byte	start, end
20	.4byte	0, 0	;# range terminator
21
22	.section	.debug_info,"",%progbits
23	.4byte	debugE - debugS	;# Length of Compilation Unit Info
24debugS:
25	.short	0x2	;# DWARF version number
26	.4byte	abbrev0	;# Offset Into Abbrev. Section
27	.byte	0x4	;# Pointer Size (in bytes)
28
29	.uleb128 0x1	;# (DIE (0xb) DW_TAG_compile_unit)
30	.4byte	range_cu - range	;# DW_AT_ranges
31
32	.uleb128 0x2	;# (DIE (0x6d) DW_TAG_subprogram)
33	.ascii "A\0"	;# DW_AT_name
34	.4byte	range_sub - range	;# DW_AT_ranges
35
36	;# minimal section alignment on alpha-* is 2, ensure no new invalid CU
37	;# will be started.
38	.balign	2
39debugE:
40
41	.section	.debug_abbrev,"",%progbits
42abbrev0:
43	.uleb128 0x1	;# (abbrev code)
44	.uleb128 0x11	;# (TAG: DW_TAG_compile_unit)
45	.byte	0x0	;# DW_children_no
46	.uleb128 0x55	;# (DW_AT_ranges)
47	.uleb128 0x6	;# (DW_FORM_data4)
48	.byte	0x0
49	.byte	0x0
50
51	.uleb128 0x2	;# (abbrev code)
52	.uleb128 0x2e	;# (TAG: DW_TAG_subprogram)
53	.byte	0x0	;# DW_children_no
54	.uleb128 0x3	;# (DW_AT_name)
55	.uleb128 0x8	;# (DW_FORM_string)
56	.uleb128 0x55	;# (DW_AT_ranges)
57	.uleb128 0x6	;# (DW_FORM_data4)
58	.byte	0x0
59	.byte	0x0
60
61	.byte	0x0	;# abbrevs terminator
62