llvm-capstone/lld/COFF
Alexandre Ganea adcdc9cc37 [LLD][COFF] Allow overwriting directives exports with cmd-line exports
MSVC link.exe allows overriding exports on the cmd-line with exports seen in OBJ directives. The typical case is what is described in #62329.

Before this patch, trying to override an export with `/export` or `/def` would generate a duplicate warning. This patches tries to replicate the MSVC behavior. A second override on the cmd-line would still generate the warning.

There's still a case which we don't cover: MSVC link.exe is able to demangle an exported OBJ directive function, and match it with a unmangled export function in a .def file. In the meanwhile, one can use the mangled export in the .def to cover that case.

This fixes #62329

Differential revision: https://reviews.llvm.org/D149611
2023-06-13 15:29:46 -04:00
..
CallGraphSort.cpp [LLD] Remove global state in lld/COFF 2023-01-09 23:39:30 -05:00
CallGraphSort.h
Chunks.cpp [lld] StringRef::{starts,ends}with => {starts,ends}_with. NFC 2023-06-05 14:36:19 -07:00
Chunks.h [lld] StringRef::{starts,ends}with => {starts,ends}_with. NFC 2023-06-05 14:36:19 -07:00
CMakeLists.txt
COFFLinkerContext.cpp [lld][COFF] Fix bug causing assertion in Chunk::setAlignment 2023-01-10 14:19:53 +00:00
COFFLinkerContext.h [lld][COFF] Fix bug causing assertion in Chunk::setAlignment 2023-01-10 14:19:53 +00:00
Config.h [LLD][COFF] Allow overwriting directives exports with cmd-line exports 2023-06-13 15:29:46 -04:00
DebugTypes.cpp Use llvm::byteswap instead of ByteSwap_{16,32,64} (NFC) 2023-01-28 15:22:37 -08:00
DebugTypes.h
DLL.cpp [LLD][COFF] Allow overwriting directives exports with cmd-line exports 2023-06-13 15:29:46 -04:00
DLL.h [lld][COFF] Provide unwinding information for Chunk injected by /delayloaded 2023-01-16 18:39:21 +01:00
Driver.cpp [LLD][COFF] Allow overwriting directives exports with cmd-line exports 2023-06-13 15:29:46 -04:00
Driver.h [NFC][lld][COFF] Rename findFile* methods 2023-06-06 13:15:09 -07:00
DriverUtils.cpp [LLD][COFF] Allow overwriting directives exports with cmd-line exports 2023-06-13 15:29:46 -04:00
ICF.cpp [lld] StringRef::{starts,ends}with => {starts,ends}_with. NFC 2023-06-05 14:36:19 -07:00
ICF.h [LLD] Remove global state in lld/COFF 2023-01-09 23:39:30 -05:00
InputFiles.cpp [lld] StringRef::{starts,ends}with => {starts,ends}_with. NFC 2023-06-05 14:36:19 -07:00
InputFiles.h [LLD] Do not assume /guard:cf always set together with /guard:ehcont 2023-05-16 23:12:03 +08:00
LLDMapFile.cpp [LLD] Remove global state in lld/COFF 2023-01-09 23:39:30 -05:00
LLDMapFile.h
LTO.cpp [LTO] Change getThinLTOOutputFile to take StringRef 2023-04-26 20:43:11 -07:00
LTO.h [LLD] Remove global state in lld/COFF 2023-01-09 23:39:30 -05:00
MapFile.cpp [LLD] Remove global state in lld/COFF 2023-01-09 23:39:30 -05:00
MapFile.h
MarkLive.cpp [LLD] Remove global state in lld/COFF 2023-01-09 23:39:30 -05:00
MarkLive.h
MinGW.cpp [lld] StringRef::{starts,ends}with => {starts,ends}_with. NFC 2023-06-05 14:36:19 -07:00
MinGW.h [LLD] Remove global state in lld/COFF 2023-01-09 23:39:30 -05:00
Options.td [LLD][COFF] Add /inferasanlibs to lld-link as ignored flag 2023-04-24 22:06:34 +08:00
PDB.cpp [lld] StringRef::{starts,ends}with => {starts,ends}_with. NFC 2023-06-05 14:36:19 -07:00
PDB.h
README.md
Symbols.cpp reland: [Demangle] make llvm::demangle take std::string_view rather than const std::string& 2023-06-06 10:18:06 -07:00
Symbols.h [LLD] Remove global state in lld/COFF 2023-01-09 23:39:30 -05:00
SymbolTable.cpp [lld] StringRef::{starts,ends}with => {starts,ends}_with. NFC 2023-06-05 14:36:19 -07:00
SymbolTable.h [LLD] Remove global state in lld/COFF 2023-01-09 23:39:30 -05:00
TypeMerger.h [LLD] Remove global state in lld/COFF 2023-01-09 23:39:30 -05:00
Writer.cpp [lld] StringRef::{starts,ends}with => {starts,ends}_with. NFC 2023-06-05 14:36:19 -07:00
Writer.h [LLD] Remove global state in lld/COFF 2023-01-09 23:39:30 -05:00

See docs/NewLLD.rst