diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2016-12-08 03:17:05 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2016-12-08 03:17:05 +0000 |
| commit | 41217616a8ad0d7f1c35ba121a5fb2af9139c106 (patch) | |
| tree | 9424c8e4e319ec3084dab6864a2a746114ebcf94 | |
| parent | 82da19ddb327df5d6f1a78d3fc012525ed2c7309 (diff) | |
| download | bcm5719-llvm-41217616a8ad0d7f1c35ba121a5fb2af9139c106.tar.gz bcm5719-llvm-41217616a8ad0d7f1c35ba121a5fb2af9139c106.zip | |
Delete dead code.
Thanks to George Rimar for pointing it out.
llvm-svn: 289020
| -rw-r--r-- | lld/ELF/LinkerScript.cpp | 13 | ||||
| -rw-r--r-- | lld/ELF/Writer.cpp | 2 |
2 files changed, 2 insertions, 13 deletions
diff --git a/lld/ELF/LinkerScript.cpp b/lld/ELF/LinkerScript.cpp index f126ef05b93..8a0c39d60ec 100644 --- a/lld/ELF/LinkerScript.cpp +++ b/lld/ELF/LinkerScript.cpp @@ -764,19 +764,6 @@ void LinkerScript<ELFT>::assignAddresses(std::vector<PhdrEntry<ELFT>> &Phdrs) { MinVA = alignDown(MinVA - HeaderSize, Config->MaxPageSize); Out<ELFT>::ElfHeader->Addr = MinVA; Out<ELFT>::ProgramHeaders->Addr = Out<ELFT>::ElfHeader->Size + MinVA; - - if (!FirstPTLoad->First) { - // Sometimes the very first PT_LOAD segment can be empty. - // This happens if (all conditions met): - // - Linker script is used - // - First section in ELF image is not RO - // - Not enough space for program headers. - // The code below removes empty PT_LOAD segment and updates - // program headers size. - Phdrs.erase(FirstPTLoad); - Out<ELFT>::ProgramHeaders->Size = - sizeof(typename ELFT::Phdr) * Phdrs.size(); - } } // Creates program headers as instructed by PHDRS linker script command. diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index d7df3aca254..ce1e533b8b6 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -139,6 +139,8 @@ template <class ELFT> void Writer<ELFT>::removeEmptyPTLoad() { auto I = std::remove_if(Phdrs.begin(), Phdrs.end(), [&](const Phdr &P) { if (P.H.p_type != PT_LOAD) return false; + if (!P.First) + return true; uintX_t Size = P.Last->Addr + P.Last->Size - P.First->Addr; return Size == 0; }); |

