llvm-project/lld/ELF
Rafael Espindola db5e56f7b2 Store a single Parent pointer for InputSectionBase.
Before InputSectionBase had an OutputSection pointer, but that was not
always valid. For example, if it was a merge section one actually had
to look at MergeSec->OutSec.

This was brittle and caused bugs like the one fixed by r304260.

We now have a single Parent pointer that points to an OutputSection
for InputSection, but to a SyntheticSection for merge sections and
.eh_frame. This makes it impossible to accidentally access an invalid
OutSec.

llvm-svn: 304338
2017-05-31 20:17:44 +00:00
..
CMakeLists.txt Move the parser for the linker script to a separate file. 2017-04-05 05:07:39 +00:00
Config.h [lld][ELF]Add option to make .dynamic read only 2017-05-26 19:12:38 +00:00
Driver.cpp [lld][ELF]Add option to make .dynamic read only 2017-05-26 19:12:38 +00:00
Driver.h Remove a dead function declaration. 2017-05-02 22:42:24 +00:00
DriverUtils.cpp Sort. 2017-03-27 03:42:55 +00:00
EhFrame.cpp Change the error format to report corrupted .eh_frame. 2017-04-01 01:42:20 +00:00
EhFrame.h Convert InputSectionBase to a class. 2017-02-23 02:28:28 +00:00
Error.cpp Flush output in log() 2017-04-28 21:35:02 +00:00
Error.h Update comments. 2017-03-30 22:57:49 +00:00
Filesystem.cpp Make LLD work even if the current directory is not writable. 2017-04-26 16:15:07 +00:00
Filesystem.h Move code to emit error messages from Filesystem.cpp to Driver.cpp. 2017-04-26 16:14:46 +00:00
GdbIndex.cpp Remove a comment that is taken from gdb man page. 2017-03-29 00:09:40 +00:00
GdbIndex.h ELF: --gdb-index: Change findSection to return an InputSection. 2017-05-15 17:59:21 +00:00
ICF.cpp Improve parallelism of ICF. 2017-05-24 19:22:34 +00:00
ICF.h Do not pass Symtab to markLive/doICF since Symtab is globally accessible. 2016-05-02 19:30:42 +00:00
InputFiles.cpp [ELF] - Do not allow -r to eat comdats. 2017-05-29 08:37:50 +00:00
InputFiles.h Revert "Simplify a variable type by using StringRef instead of CachedHashStringRef." 2017-05-25 21:53:02 +00:00
InputSection.cpp Store a single Parent pointer for InputSectionBase. 2017-05-31 20:17:44 +00:00
InputSection.h Store a single Parent pointer for InputSectionBase. 2017-05-31 20:17:44 +00:00
LTO.cpp [lld] Infer relocation model from module flags in relocatable LTO link. 2017-05-22 21:11:44 +00:00
LTO.h ELF: Add ThinLTO caching support. 2017-03-01 23:00:10 +00:00
LinkerScript.cpp Store a single Parent pointer for InputSectionBase. 2017-05-31 20:17:44 +00:00
LinkerScript.h [ELF] Use late evaluation for ALIGN in expression 2017-05-30 03:18:28 +00:00
MapFile.cpp Keep a list of all OutputSectionCommands. 2017-05-30 01:30:14 +00:00
MapFile.h Keep a list of all OutputSectionCommands. 2017-05-30 01:30:14 +00:00
MarkLive.cpp [ELF] - Combine LinkerScriptBase and LinkerScript<ELFT> 2017-03-20 10:09:58 +00:00
Memory.h Remove lld/Support/Memory.h. 2016-12-18 14:06:06 +00:00
Mips.cpp [ELF][MIPS] N32 ABI support 2016-11-05 22:58:01 +00:00
Options.td Accept not only --reproduce <foo> but also --reproduce=<foo>. 2017-05-25 19:49:54 +00:00
OutputSections.cpp Store a single Parent pointer for InputSectionBase. 2017-05-31 20:17:44 +00:00
OutputSections.h Check Live instead of the section type. 2017-05-30 20:40:03 +00:00
README.md Update the documents of the new LLD. 2016-03-12 06:06:40 +00:00
Relocations.cpp Store a single Parent pointer for InputSectionBase. 2017-05-31 20:17:44 +00:00
Relocations.h [ELF] Support R_ARM_SBREL32 Relocation 2017-05-18 09:12:21 +00:00
ScriptLexer.cpp Handle ":" as a regular token character in linker scripts. 2017-03-09 19:23:00 +00:00
ScriptLexer.h Handle ":" as a regular token character in linker scripts. 2017-03-09 19:23:00 +00:00
ScriptParser.cpp [ELF] Use late evaluation for ALIGN in expression 2017-05-30 03:18:28 +00:00
ScriptParser.h Move the parser for the linker script to a separate file. 2017-04-05 05:07:39 +00:00
Strings.cpp [ELF] - Use llvm::to_integer() instead of StringRef::getAsInteger(). 2017-05-16 08:19:25 +00:00
Strings.h Simplify BinaryFile::parse and add comments. 2017-04-27 04:01:36 +00:00
SymbolTable.cpp Revert "Simplify a variable type by using StringRef instead of CachedHashStringRef." 2017-05-25 21:53:02 +00:00
SymbolTable.h Revert "Simplify a variable type by using StringRef instead of CachedHashStringRef." 2017-05-25 21:53:02 +00:00
Symbols.cpp Store a single Parent pointer for InputSectionBase. 2017-05-31 20:17:44 +00:00
Symbols.h Detemplate SymbolBody::getGotVA. NFC. 2017-05-11 23:28:49 +00:00
SyntheticSections.cpp Store a single Parent pointer for InputSectionBase. 2017-05-31 20:17:44 +00:00
SyntheticSections.h Store a single Parent pointer for InputSectionBase. 2017-05-31 20:17:44 +00:00
Target.cpp Store a single Parent pointer for InputSectionBase. 2017-05-31 20:17:44 +00:00
Target.h Remove isTlsLocalDynamicRel and isTlsInitialExecRel. 2017-05-05 20:25:54 +00:00
Threads.h [Support] Move Parallel algorithms from LLD to LLVM. 2017-05-11 00:03:52 +00:00
Thunks.cpp [ELF] - Detemplate Thunk creation. 2017-05-17 07:10:59 +00:00
Thunks.h [ELF] - Detemplate Thunk creation. 2017-05-17 07:10:59 +00:00
Writer.cpp Store a single Parent pointer for InputSectionBase. 2017-05-31 20:17:44 +00:00
Writer.h Inline a trivial constructor. 2017-05-26 02:17:13 +00:00

README.md

See docs/NewLLD.rst