[llvm-objcopy][MachO] Handle relocation entries where r_extern is zero
authorAlexander Shaposhnikov <alexshap@fb.com>
Mon, 27 Apr 2020 05:39:50 +0000 (22:39 -0700)
committerAlexander Shaposhnikov <alexshap@fb.com>
Tue, 28 Apr 2020 00:59:07 +0000 (17:59 -0700)
commit0db3a5a93e113d681e78ea5f7dd8cd1020d02a7b
tree249229e62eca180735bed7b4134f2b1ee4e7944a
parentbc0342383dde329ab2bb07085900a533f0c053db
[llvm-objcopy][MachO] Handle relocation entries where r_extern is zero

Fix handling of relocations with r_extern == 0.
If r_extern == 0 then r_symbolnum is an index of a section rather than a symbol index.

Patch by Seiya Nuta and Alexander Shaposhnikov.

Test plan: make check-all

Differential revision: https://reviews.llvm.org/D78946
llvm/test/tools/llvm-objcopy/MachO/relocations.test [new file with mode: 0644]
llvm/tools/llvm-objcopy/MachO/MachOReader.cpp
llvm/tools/llvm-objcopy/MachO/MachOWriter.cpp
llvm/tools/llvm-objcopy/MachO/Object.cpp
llvm/tools/llvm-objcopy/MachO/Object.h