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