mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-13 22:58:50 +00:00
[DWARF] Allow empty address range tables.
Empty address range tables are allowed by the DWARF standard; Moreover, generating them is recommended as a best practice, see http://wiki.dwarfstd.org/index.php?title=Best_Practices#Generating_.debug_aranges_data Differential Revision: https://reviews.llvm.org/D71931
This commit is contained in:
parent
ee1ac293cf
commit
6a79709adb
@ -90,10 +90,10 @@ DWARFDebugArangeSet::extract(DataExtractor data, uint64_t *offset_ptr) {
|
||||
if (arangeDescriptor.Address || arangeDescriptor.Length)
|
||||
ArangeDescriptors.push_back(arangeDescriptor);
|
||||
else
|
||||
break; // We are done if we get a zero address and length
|
||||
return true; // We are done if we get a zero address and length
|
||||
}
|
||||
|
||||
return !ArangeDescriptors.empty();
|
||||
return false; // No termination tuple is found.
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
24
test/DebugInfo/X86/dwarfdump-debug-aranges.s
Normal file
24
test/DebugInfo/X86/dwarfdump-debug-aranges.s
Normal file
@ -0,0 +1,24 @@
|
||||
# RUN: llvm-mc -triple x86_64-unknown-linux %s -filetype=obj -o - | \
|
||||
# RUN: llvm-dwarfdump -debug-aranges - 2>&1 | \
|
||||
# RUN: FileCheck %s
|
||||
|
||||
.section .debug_aranges,"",@progbits
|
||||
# CHECK: .debug_aranges contents:
|
||||
|
||||
## Check that an empty set of ranges is supported.
|
||||
.long .L1end - .L1version # Length
|
||||
# CHECK: Address Range Header: length = 0x00000014,
|
||||
.L1version:
|
||||
.short 2 # Version
|
||||
.long 0x3456789a # Debug Info Offset
|
||||
.byte 4 # Address Size
|
||||
.byte 0 # Segment Selector Size
|
||||
# CHECK-SAME: version = 0x0002,
|
||||
# CHECK-SAME: cu_offset = 0x3456789a,
|
||||
# CHECK-SAME: addr_size = 0x04,
|
||||
# CHECK-SAME: seg_size = 0x00
|
||||
.space 4 # Padding
|
||||
.L1tuples:
|
||||
.long 0, 0 # Termination tuple
|
||||
# CHECK-NOT: [0x
|
||||
.L1end:
|
Loading…
Reference in New Issue
Block a user