Makes it easier to test "this doesn't produce an error" (& indeed makes that the implied default so we don't accidentally write tests that have silent/sneaky errors as well as the positive behavior we're testing for) Though the support for applying relocations is patchy enough that a bunch of tests treat lack of relocation application as more of a warning than an error - so rather than me trying to figure out how to add support for a bunch of relocation types, let's degrade that to a warning to match the usage (& indeed, it's sort of more of a tool warning anyway - it's not that the DWARF is wrong, just that the tool can't fully cope with it - and it's not like the tool won't dump the DWARF, it just won't follow/render certain relocations - I guess in the most general case it might try to render an unrelocated value & instead render something bogus... but mostly seems to be about interesting relocations used in eh_frame (& honestly it might be nice if we were lazier about doing this relocation resolution anyway - if you're not dumping eh_frame, should we really be erroring about the relocations in it?))
22 lines
957 B
ArmAsm
22 lines
957 B
ArmAsm
# RUN: llvm-mc -triple x86_64-unknown-linux %s -filetype=obj -o %t.o
|
|
# RUN: not llvm-dwarfdump -debug-aranges %t.o 2>&1 | FileCheck %s
|
|
# RUN: not llvm-dwarfdump -lookup 10 %t.o 2>&1 | FileCheck %s
|
|
|
|
## This checks that llvm-dwarfdump shows parsing errors in .debug_aranges.
|
|
## For more error cases see unittests/DebugInfo/DWARF/DWARFDebugArangeSetTest.cpp.
|
|
|
|
# CHECK: the length of address range table at offset 0x0 exceeds section size
|
|
|
|
.section .debug_aranges,"",@progbits
|
|
.long .Lend - .Lversion + 1 # The length exceeds the section boundaries
|
|
.Lversion:
|
|
.short 2 # Version
|
|
.long 0 # Debug Info Offset
|
|
.byte 4 # Address Size
|
|
.byte 0 # Segment Selector Size
|
|
.space 4 # Padding
|
|
.Ltuples:
|
|
.long 0, 1 # Address and length
|
|
.long 0, 0 # Termination tuple
|
|
.Lend:
|