[all-commits] [llvm/llvm-project] 5feb80: [dsymutil] Fix double relocation of DW_AT_call_ret...

Jonas Devlieghere via All-commits all-commits at lists.llvm.org
Thu Feb 13 17:46:08 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 5feb80e748924606531ba28c97fe65145c65372e
      https://github.com/llvm/llvm-project/commit/5feb80e748924606531ba28c97fe65145c65372e
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2020-02-13 (Thu, 13 Feb 2020)

  Changed paths:
    M llvm/include/llvm/DWARFLinker/DWARFLinker.h
    M llvm/lib/DWARFLinker/DWARFLinker.cpp
    A llvm/test/tools/dsymutil/Inputs/private/tmp/call_return_pc/call
    A llvm/test/tools/dsymutil/Inputs/private/tmp/call_return_pc/call.o
    A llvm/test/tools/dsymutil/X86/call-site-entry-reloc.test

  Log Message:
  -----------
  [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.




More information about the All-commits mailing list