brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.6 KiB · 07c9fe6 Raw
249 lines · plain
1# RUN: llvm-mc %s -filetype obj -triple x86_64-pc-linux -o %t.o2# RUN: llvm-dwarfdump --debug-rnglists %t.o 2> %t.err | FileCheck %s --check-prefixes=TERSE,BOTH3# RUN: FileCheck %s --allow-empty --input-file %t.err --check-prefix=ERR4# RUN: llvm-dwarfdump -v --debug-rnglists %t.o 2> %t.err | FileCheck %s --check-prefixes=VERBOSE,BOTH5# RUN: FileCheck %s --allow-empty --input-file %t.err --check-prefix=ERR6 7# BOTH:         .debug_rnglists contents:8# TERSE-NEXT:     range list header: length = 0x00000037, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x000000009 10# VERBOSE-NEXT: 0x{{[0-9a-f]*}}:11# VERBOSE-SAME: range list header: length = 0x00000037, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x0000000012 13# BOTH-NEXT:    ranges:14# TERSE-NEXT:   [0x0000000000000010, 0x0000000000000020)15# TERSE-NEXT:   [0x0000000000000025, 0x00000000000000a5)16# TERSE-NEXT:   <End of list>17# TERSE-NEXT:   [0x0000000000000100, 0x0000000000000200)18# TERSE-NEXT:   <End of list>19 20# VERBOSE-NEXT: 0x0000000c: [DW_RLE_start_end   ]: [0x0000000000000010, 0x0000000000000020)21# VERBOSE-NEXT: 0x0000001d: [DW_RLE_start_length]:  0x0000000000000025, 0x000000000000008022# VERBOSE-SAME: => [0x0000000000000025, 0x00000000000000a5)23# VERBOSE-NEXT: 0x00000028: [DW_RLE_end_of_list ]24# VERBOSE-NEXT: 0x00000029: [DW_RLE_start_end   ]: [0x0000000000000100, 0x0000000000000200)25# VERBOSE-NEXT: 0x0000003a: [DW_RLE_end_of_list ]26 27# TERSE-NEXT:   range list header: length = 0x0000002b, format = DWARF32, version = 0x0005, addr_size = 0x04, seg_size = 0x00, offset_entry_count = 0x0000000228 29# VERBOSE-NEXT: 0x{{[0-9a-f]*}}:30# VERBOSE-SAME: range list header: length = 0x0000002b, format = DWARF32, version = 0x0005, addr_size = 0x04, seg_size = 0x00, offset_entry_count = 0x0000000231 32# BOTH-NEXT:    offsets: [33# BOTH-NEXT:      0x0000000834# VERBOSE-SAME:   => 0x0000004f35# BOTH-NEXT:      0x0000001b36# VERBOSE-SAME:   => 0x0000006237# BOTH-NEXT:    ]38# BOTH-NEXT:    ranges:39 40# TERSE-NEXT:   [0x00000000, 0x00000000)41# TERSE-NEXT:   [0x00000002, 0x00000006)42# TERSE-NEXT:   <End of list>43# TERSE-NEXT:   [0x00000036, 0x00000136)44# TERSE-NEXT:   <End of list>45 46# VERBOSE-NEXT: 0x0000004f: [DW_RLE_start_end   ]: [0x00000000, 0x00000000)47# VERBOSE-NEXT: 0x00000058: [DW_RLE_start_end   ]: [0x00000002, 0x00000006)48# VERBOSE-NEXT: 0x00000061: [DW_RLE_end_of_list ]49# VERBOSE-NEXT: 0x00000062: [DW_RLE_start_length]:  0x00000036, 0x00000100 => [0x00000036, 0x00000136)50# VERBOSE-NEXT: 0x00000069: [DW_RLE_end_of_list ]51 52# TERSE-NEXT:   range list header: length = 0x00000008, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x0000000053 54# VERBOSE-NEXT: 0x{{[0-9a-f]*}}:55# VERBOSE-SAME: range list header: length = 0x00000008, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x0000000056 57# BOTH-NOT:     offsets:58# BOTH:         ranges:59# BOTH-NOT:     [60 61# TERSE-NEXT:   range list header: length = 0x0000000b, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x0000000062 63# VERBOSE-NEXT: 0x{{[0-9a-f]*}}:64# VERBOSE-SAME: range list header: length = 0x0000000b, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x0000000065 66# BOTH-NEXT:    ranges:67# TERSE-NEXT:   <End of list>68 69# VERBOSE-NEXT: 0x00000082: [DW_RLE_base_addressx]:  0x000000000000000070# VERBOSE-NEXT: 0x00000084: [DW_RLE_end_of_list ]71 72# TERSE-NEXT:   range list header: length = 0x0000000c, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x0000000073 74# VERBOSE-NEXT: 0x{{[0-9a-f]*}}:75# VERBOSE-SAME: range list header: length = 0x0000000c, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x0000000076 77# BOTH-NEXT:    ranges:78# TERSE-NEXT:   [0x0000000000000000, 0x0000000000000000)79# TERSE-NEXT:   <End of list>80 81# VERBOSE-NEXT: 0x00000091: [DW_RLE_startx_endx]:  0x0000000000000001, 0x000000000000000a => [0x0000000000000000, 0x0000000000000000)82# VERBOSE-NEXT: 0x00000094: [DW_RLE_end_of_list]83 84# TERSE-NEXT:   range list header: length = 0x0000000c, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x0000000085 86# VERBOSE-NEXT: 0x{{[0-9a-f]*}}:87# VERBOSE-SAME: range list header: length = 0x0000000c, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x0000000088 89# BOTH-NEXT:    ranges:90# TERSE-NEXT:   [0x0000000000000000, 0x000000000000002a)91# TERSE-NEXT:   <End of list>92 93# VERBOSE-NEXT: 0x000000a1: [DW_RLE_startx_length]:  0x0000000000000002, 0x000000000000002a => [0x0000000000000000, 0x000000000000002a)94# VERBOSE-NEXT: 0x000000a4: [DW_RLE_end_of_list ]95 96# TERSE-NEXT:   range list header: length = 0x0000000e, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x0000000097 98# VERBOSE-NEXT: 0x{{[0-9a-f]*}}:99# VERBOSE-SAME: range list header: length = 0x0000000e, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x00000000100 101# BOTH-NEXT:    ranges:102# TERSE-NEXT:   [0x0000000000000800, 0x0000000000001000)103# TERSE-NEXT:   <End of list>104 105# VERBOSE-NEXT: 0x000000b1: [DW_RLE_offset_pair]:  0x0000000000000800, 0x0000000000001000 =>106# VERBOSE-SAME:                                   [0x0000000000000800, 0x0000000000001000)107# VERBOSE-NEXT: 0x000000b6: [DW_RLE_end_of_list]108 109# TERSE-NEXT:   range list header: length = 0x00000017, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x00000000110 111# VERBOSE-NEXT: 0x{{[0-9a-f]*}}:112# VERBOSE-SAME: range list header: length = 0x00000017, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x00000000113 114# BOTH-NEXT:    ranges:115# TERSE-NEXT:   [0x0000000000001800, 0x0000000000002000)116# TERSE-NEXT:   <End of list>117 118# VERBOSE-NEXT: 0x000000c3: [DW_RLE_base_address]:  0x0000000000001000119# VERBOSE-NEXT: 0x000000cc: [DW_RLE_offset_pair ]:  0x0000000000000800, 0x0000000000001000 =>120# VERBOSE-SAME:                                    [0x0000000000001800, 0x0000000000002000)121# VERBOSE-NEXT: 0x000000d1: [DW_RLE_end_of_list ]122 123# BOTH-NOT:     range list header:124 125# ERR-NOT:  error:126 127.section .debug_rnglists,"",@progbits128 129# First table (tests DW_RLE_end_of_list, start_end, and start_length encodings)130.long 55 # Table length131.short 5 # Version132.byte 8  # Address size133.byte 0  # Segment selector size134.long 0  # Offset entry count135 136# First range list137.byte 6          # DW_RLE_start_end138.quad 0x10, 0x20   # Start, end address139.byte 7          # DW_RLE_start_length140.quad 0x25         # Start address141.byte 0x80, 0x01   # Length142.byte 0          # DW_RLE_end_of_list143 144# Second range list145.byte 6          # DW_RLE_start_end146.quad 0x100, 0x200 # Start, end address147.byte 0          # DW_RLE_end_of_list148 149# Second table (shows support for size 4 addresses)150.long 43 # Table length151.short 5 # Version152.byte 4  # Address size153.byte 0  # Segment selector size154.long 2  # Offset entry count155 156# Offset array157.long 8  # Offset Entry 0158.long 27 # Offset Entry 1159 160# First range list161.byte 6          # DW_RLE_start_end162.long 0, 0         # Start, end address163.byte 6          # DW_RLE_start_end164.long 0x2, 0x6     # Start, end address165.byte 0          # DW_RLE_end_of_list166 167# Second range list168.byte 7          # DW_RLE_start_length169.long 0x36         # Start address170.byte 0x80, 0x02   # Length171.byte 0          # DW_RLE_end_of_list172 173# Third (empty) table174.long 8  # Table length175.short 5 # Version176.byte 8  # Address size177.byte 0  # Segment selector size178.long 0  # Offset entry count179 180# The following entries are for encodings unsupported at the time of writing.181# The test should be updated as these encodings are supported.182 183# Fourth table (testing DW_RLE_base_addressx)184.long 11 # Table length185.short 5 # Version186.byte 8  # Address size187.byte 0  # Segment selector size188.long 0  # Offset entry count189 190# First range list191.byte 1          # DW_RLE_base_addressx192.byte 0            # Base address (index 0 in .debug_addr)193.byte 0          # DW_RLE_end_of_list194 195# Fifth table (testing DW_RLE_startx_endx)196.long 12 # Table length197.short 5 # Version198.byte 8  # Address size199.byte 0  # Segment selector size200.long 0  # Offset entry count201 202# First range list203.byte 2          # DW_RLE_startx_endx204.byte 1            # Start address (index in .debug_addr)205.byte 10           # End address (index in .debug_addr)206.byte 0          # DW_RLE_end_of_list207 208# Sixth table (testing DW_RLE_startx_length)209.long 12 # Table length210.short 5 # Version211.byte 8  # Address size212.byte 0  # Segment selector size213.long 0  # Offset entry count214 215# First range list216.byte 3          # DW_RLE_startx_length217.byte 2            # Start address (index in .debug_addr)218.byte 42           # Length219.byte 0          # DW_RLE_end_of_list220 221# Seventh table (testing DW_RLE_offset_pair)222.long 14 # Table length223.short 5 # Version224.byte 8  # Address size225.byte 0  # Segment selector size226.long 0  # Offset entry count227 228# First range list229.byte 4          # DW_RLE_offset_pair230.byte 0x80, 0x10   # Start offset231.byte 0x80, 0x20   # End offset (index in .debug_addr)232.byte 0          # DW_RLE_end_of_list233 234# Eigth table (testing DW_RLE_base_address and its impact235# on DW_RLE_offset_pair)236.long 23 # Table length237.short 5 # Version238.byte 8  # Address size239.byte 0  # Segment selector size240.long 0  # Offset entry count241 242# First range list243.byte 5          # DW_RLE_base_address244.quad 0x1000       # Base address245.byte 4          # DW_RLE_offset_pair246.byte 0x80, 0x10 # Start offset247.byte 0x80, 0x20 # End offset248.byte 0          # DW_RLE_end_of_list249