hanchenye-llvm-project/lld
Simon Atanasyan ea423e261f [ELF] Fix reading of PC values of FDEs
The patch fixes two related problems:
- If CIE augmentation string has 'L' token the CIE contains a byte
  defines LSDA encoding. We should skip this byte in `getFdeEncoding`
  routine. Before this fix we do not skip it and if the next token
  is 'R' treat this byte as FDE encoding.
- FDE encoding format has separate flags e.g. DW_EH_PE_pcrel for
  definition of relative pointers. We should add .eh_frame address to
  the PC value iif the DW_EH_PE_pcrel is specified.

http://www.airs.com/blog/archives/460

There is one more not fixed problem in this code. If PC value is encoded
using signed relative format e.g. DW_EH_PE_sdata4 | DW_EH_PE_pcrel we
should sign extend result of read32 to perform calculation correctly.
I am going to fix that in a separate patch.

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

llvm-svn: 262461
2016-03-02 05:38:42 +00:00
..
COFF Fix BUILD_SHARED_LIBS build. 2016-03-01 15:56:53 +00:00
ELF [ELF] Fix reading of PC values of FDEs 2016-03-02 05:38:42 +00:00
cmake/modules
docs Delete more ELF bits from the old linker. 2016-02-28 16:03:37 +00:00
include/lld Use C++11 initializers for data members. 2016-03-02 01:49:27 +00:00
lib Use C++11 initializers for data members. 2016-03-02 01:49:27 +00:00
test [ELF] Fix reading of PC values of FDEs 2016-03-02 05:38:42 +00:00
tools Remove CoreDriver. 2016-03-01 23:44:05 +00:00
unittests Tidy up CMakefiles. 2016-03-02 00:31:34 +00:00
.arcconfig
.clang-format
.gitignore
CMakeLists.txt Set CMake ADDITIONAL_HEADER_DIRS on libraries with headers in /include. NFC. 2016-01-07 00:14:09 +00:00
CODE_OWNERS.TXT Add initial CODE_OWNERS.TXT file 2015-07-25 00:44:37 +00:00
LICENSE.TXT Update copyright year to 2015. 2015-03-12 20:14:35 +00:00
README.md

README.md

LLVM Linker (lld)

This directory and its subdirectories contain source code for the LLVM Linker, a modular cross platform linker which is built as part of the LLVM compiler infrastructure project.

lld is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt.