llvm-project/lld/ELF
Georgii Rymar bb7d2b1780 [LLD][ELF] - Disambiguate "=fillexp" with a primary expression to allow =0x90 /DISCARD/
Fixes https://bugs.llvm.org/show_bug.cgi?id=44903

It is about the following case:

```
SECTIONS {
  .foo : { *(.foo) } =0x90909090
  /DISCARD/ : { *(.bar) }
}
```

Here while parsing the fill expression we treated the
"/" of "/DISCARD/" as operator.

With this change, suggested by Fangrui Song, we do
not allow expressions with operators (e.g. "0x1100 + 0x22")
that are not wrapped into round brackets. It should not
be an issue for users, but helps to resolve parsing ambiguity.

Differential revision: https://reviews.llvm.org/D74687
2020-03-19 12:49:25 +03:00
..
Arch [LLD][ELF][Hexagon] Support GDPLT transforms 2020-03-13 11:02:11 -05:00
AArch64ErrataFix.cpp [ELF] Rename relocateOne() to relocate() and pass `Relocation` to it 2020-01-25 12:00:18 -08:00
AArch64ErrataFix.h [ELF] Fix variable names in comments after VariableName -> variableName change 2019-07-16 05:50:45 +00:00
ARMErrataFix.cpp [ELF] Rename relocateOne() to relocate() and pass `Relocation` to it 2020-01-25 12:00:18 -08:00
ARMErrataFix.h [ELF][ARM] Implement --fix-cortex-a8 to fix erratum 657417 2019-09-16 09:38:38 +00:00
CMakeLists.txt [ThinLTO] Pass CodeGenOpts like UnrollLoops/VectorizeLoop/VectorizeSLP 2020-01-09 21:13:11 -08:00
CallGraphSort.cpp Fix a few typos in lld/ELF to cycle bots 2019-10-28 21:41:47 -04:00
CallGraphSort.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Config.h [ELF] Correct error message when OUTPUT_FORMAT is used 2020-03-12 22:54:53 -07:00
DWARF.cpp [LLD][NFC] Remove getOffsetInFile() workaround. 2020-03-05 15:52:46 +03:00
DWARF.h gdb-index: Wire up str_offsets section to avoid incorrect error message about offsets_base 2019-08-07 22:49:14 +00:00
Driver.cpp [LLD] Add support for --unique option 2020-03-10 12:20:21 +00:00
Driver.h [Coding style change] Rename variables so that they start with a lowercase letter 2019-07-10 05:00:37 +00:00
DriverUtils.cpp Remove unused Endian.h includes, NFC 2020-03-11 15:45:34 -07:00
EhFrame.cpp [ELF] Wrap things in `namespace lld { namespace elf {`, NFC 2019-10-07 08:31:18 +00:00
EhFrame.h [Coding style change] Rename variables so that they start with a lowercase letter 2019-07-10 05:00:37 +00:00
ICF.cpp [LLD][ELF] Add time-trace to ELF LLD 2020-02-06 12:14:13 +00:00
ICF.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
InputFiles.cpp [ELF] Correct error message when OUTPUT_FORMAT is used 2020-03-12 22:54:53 -07:00
InputFiles.h LLD already has a mechanism for caching creation of DWARCContext: 2020-03-06 21:17:07 +03:00
InputSection.cpp [ELF][PPC32] Don't report "relocation refers to a discarded section" for .got2 2020-03-01 19:54:40 -08:00
InputSection.h [ELF] Fix a null pointer dereference when --emit-relocs and --strip-debug are used together 2020-02-13 08:56:38 -08:00
LTO.cpp [LLD][ELF] Add time-trace to ELF LLD 2020-02-06 12:14:13 +00:00
LTO.h [Coding style change] Rename variables so that they start with a lowercase letter 2019-07-10 05:00:37 +00:00
LinkerScript.cpp [ELF] Simplify sh_addr computation and warn if sh_addr is not a multiple of sh_addralign 2020-03-11 09:35:42 -07:00
LinkerScript.h [ELF] Simplify sh_addr computation and warn if sh_addr is not a multiple of sh_addralign 2020-03-11 09:35:42 -07:00
MapFile.cpp Make it possible to redirect not only errs() but also outs() 2019-11-18 11:18:06 +09:00
MapFile.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MarkLive.cpp [LLD][ELF] Add time-trace to ELF LLD 2020-02-06 12:14:13 +00:00
MarkLive.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Options.td [LLD] Add support for --unique option 2020-03-10 12:20:21 +00:00
OutputSections.cpp [ELF] Refactor uses of getInputSections to improve efficiency NFC 2020-01-21 12:27:52 +00:00
OutputSections.h [ELF] Refactor uses of getInputSections to improve efficiency NFC 2020-01-21 12:27:52 +00:00
README.md
Relocations.cpp [LLD][ELF][Hexagon] Support GDPLT transforms 2020-03-13 11:02:11 -05:00
Relocations.h [LLD][ELF][Hexagon] Support GDPLT transforms 2020-03-13 11:02:11 -05:00
ScriptLexer.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
ScriptLexer.h [Coding style change] Rename variables so that they start with a lowercase letter 2019-07-10 05:00:37 +00:00
ScriptParser.cpp [LLD][ELF] - Disambiguate "=fillexp" with a primary expression to allow =0x90 /DISCARD/ 2020-03-19 12:49:25 +03:00
ScriptParser.h [ELF] Fix variable names in comments after VariableName -> variableName change 2019-07-16 05:50:45 +00:00
SymbolTable.cpp [lld/ELF] PR44498: Support input filename in double quote 2020-01-22 12:03:10 +00:00
SymbolTable.h [ELF] Replace SymbolTable::forEachSymbol with iterator_range symbols() 2019-11-26 09:09:32 -08:00
Symbols.cpp [ELF] Delete two unneeded `referenced = true` after D65584 2020-02-28 21:59:08 -08:00
Symbols.h [ELF] --icf: do not fold preemptible symbols 2019-12-10 09:06:08 -08:00
SyntheticSections.cpp [ELF] --gdb-index: fix memory usage regression after D74773 2020-03-12 16:55:30 -07:00
SyntheticSections.h [ELF][PPC32] Fix canonical PLTs when the order does not match the PLT order 2020-02-28 22:23:14 -08:00
Target.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Target.h [ELF] Mention symbol name in reportRangeError() 2020-01-29 09:38:25 -08:00
Thunks.cpp [ELF][PPC32] Support range extension thunks with addends 2020-01-25 22:32:42 -08:00
Thunks.h [ELF][PPC32] Implement IPLT code sequence for non-preemptible IFUNC 2019-12-29 22:42:53 -08:00
Writer.cpp [LLD][ELF][Hexagon] Support GDPLT transforms 2020-03-13 11:02:11 -05:00
Writer.h Revert "Revert r370635, it caused PR43241." 2019-09-06 15:57:24 +00:00

README.md

See docs/NewLLD.rst