[dsymutil][DWARFv5] fix DW_FORM_addrx attribute offset calculation.
authorAlexey Lapshin <a.v.lapshin@mail.ru>
Wed, 24 Aug 2022 21:36:13 +0000 (00:36 +0300)
committerAlexey Lapshin <a.v.lapshin@mail.ru>
Fri, 26 Aug 2022 12:26:06 +0000 (15:26 +0300)
commit7a64e636af376b2201bc01badc67d57b6f7e2c0f
treeb4a824a2d905ae5b1b6591cd7bcd3a4ce91ebdf1
parent2c1796b3d6c252e2fb7d17efb6089b0f0c4aa695
[dsymutil][DWARFv5] fix DW_FORM_addrx attribute offset calculation.

DWARFLinker::DIECloner::cloneAddressAttribute() contains call to
relocateIndexedAddr(StartOffset, EndOffset). StartOffset is
incorrectly calculated. Val.getRawUValue() is an index into the
.debug_addr table, so it should be multiplied
by Unit.getOrigUnit().getAddressByteSize().

Differential Revision: https://reviews.llvm.org/D132644
llvm/lib/DWARFLinker/DWARFLinker.cpp
llvm/test/tools/dsymutil/Inputs/private/tmp/dwarf5/dwarf5-addrx.o [new file with mode: 0644]
llvm/test/tools/dsymutil/Inputs/private/tmp/dwarf5/dwarf5-addrx.out [new file with mode: 0755]
llvm/test/tools/dsymutil/Inputs/private/tmp/dwarf5/dwarf5.o [deleted file]
llvm/test/tools/dsymutil/Inputs/private/tmp/dwarf5/dwarf5.out [deleted file]
llvm/test/tools/dsymutil/X86/dwarf5-addrx.test [new file with mode: 0644]
llvm/test/tools/dsymutil/X86/dwarf5.test [deleted file]