Fix EHFrame processing to add implicit references when needed.
authorPete Cooper <peter_cooper@apple.com>
Tue, 15 Mar 2016 21:33:10 +0000 (21:33 +0000)
committerPete Cooper <peter_cooper@apple.com>
Tue, 15 Mar 2016 21:33:10 +0000 (21:33 +0000)
commitebecd6c54344abc15be328e2086fb46f616af083
tree3674569b2a8116ef44bb862c02f042739849d4a3
parent9cb61faa61ae12814eb9820ed838eedc1ac7a461
Fix EHFrame processing to add implicit references when needed.

The current code for processCIE and processFDE returns out if it sees
any references.  The problem with this is that some references could be
explicit in the binary, while others are implicit as they can be
inferred from the content of the EHFrame itself.

This change walks the references we have against the references we
need, and verifies that all explicit references are in the correct place,
and generates any missing implicit ones.

Reviewed by Lang Hames and Nick Kledzik.

Differential Revision: http://reviews.llvm.org/D15439

llvm-svn: 263590
lld/include/lld/Core/DefinedAtom.h
lld/lib/ReaderWriter/MachO/ArchHandler.h
lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp
lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp
lld/lib/ReaderWriter/MachO/ArchHandler_x86.cpp
lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp
lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp
lld/test/mach-o/do-not-emit-unwind-fde-arm64.yaml
lld/test/mach-o/eh-frame-relocs-arm64.yaml [new file with mode: 0644]