HomePhabricator

[dsymutil] Fix double relocation of DW_AT_call_return_pc

Authored by JDevlieghere on Feb 13 2020, 5:39 PM.

Description

[dsymutil] Fix double relocation of DW_AT_call_return_pc

When the DW_AT_call_return_pc matches a relocation, the call return pc
would get relocated twice, once because of the relocation in the object
file and once because of dsymutil. The same problem exists for the low
and high PC and the fix is the same. We remember the low, high and
return pc of the original DIE and relocate that, rather than the
potentially already relocated value.

Reviewed offline by Fred Riss.

Details