llvm-project/lld/test/COFF
Rui Ueyama f5313b3498 COFF: Allow mangled symbols as arguments for /export.
Usually dllexported symbols are defined with 'extern "C"',
so identifying them is easy. We can just do hash table lookup
to look up exported symbols.

However, C++ non-member functions are also allowed to be exported,
and they can be specified with unmangled name. So, if /export:foo
is given, we need to look up not only "foo" but also its all
mangled names. In MSVC mangling scheme, that means that we need to
look up any symbol which starts with "?foo@@Y".

In this patch, we scan the entire symbol table to search for
a mangled symbol. The symbol table is a DenseMap, and that doesn't
support table lookup by string prefix. This is of course very
inefficient. But that should be probably OK because the user
should always add 'extern "C"' to dllexported symbols.

llvm-svn: 240919
2015-06-28 22:16:41 +00:00
..
Inputs COFF: Allow mangled symbols as arguments for /export. 2015-06-28 22:16:41 +00:00
alternatename.test COFF: Don't add new undefined symbols for /alternatename. 2015-06-19 19:23:43 +00:00
base.test COFF: Remove redundant options from tests. 2015-05-31 04:21:30 +00:00
baserel.test COFF: Unknown options in .drectve section is an error. 2015-06-18 21:50:38 +00:00
common.test COFF: Fix common symbol alignment. 2015-06-20 07:25:45 +00:00
conflict.test COFF: Add a test for r240719. 2015-06-26 03:50:27 +00:00
debug.test COFF: Ignore debug symbols. 2015-06-24 00:05:50 +00:00
defparser.test COFF: Fix lexer for the module-definition file. 2015-06-25 21:06:00 +00:00
delayimports.test COFF: Add base relocation for delay-import table. 2015-06-26 22:05:32 +00:00
dll.test COFF: Allow mangled symbols as arguments for /export. 2015-06-28 22:16:41 +00:00
driver.test COFF: Implement subsystem inference. 2015-05-31 03:55:46 +00:00
entry-inference.test COFF: Infer entry symbol name if /entry is not given. 2015-05-31 03:34:08 +00:00
entrylib.ll COFF: Fix entry point inference bug. 2015-06-18 00:40:33 +00:00
export.test COFF: Support module-definition files. 2015-06-17 19:19:25 +00:00
failifmismatch.test COFF: Add /failifmismatch option. 2015-06-04 19:21:24 +00:00
filetype.test COFF: Detect file type by file magic. 2015-05-31 21:17:10 +00:00
force.test Fix broken test. 2015-06-28 19:38:10 +00:00
heap.test COFF: Support module-definition files. 2015-06-17 19:19:25 +00:00
help.test COFF: Add /help option. 2015-05-29 16:11:52 +00:00
icf.test COFF: Fix ICF correctness bug. 2015-06-28 01:30:54 +00:00
imports.test COFF: Align DLL import thunks on 16-byte boundaries. 2015-06-26 18:28:56 +00:00
include.test COFF: Handle /include in .drectve. 2015-06-18 23:20:11 +00:00
include2.test COFF: Change symbol resolution order for entry and /include. 2015-06-26 03:44:00 +00:00
internal.test COFF: Fix local absolute symbols. 2015-06-26 03:09:23 +00:00
libpath.test COFF: Fix precedence between LIB and /libpath. 2015-06-19 22:39:48 +00:00
linkenv.test COFF: Fix flaky test. 2015-06-28 22:06:53 +00:00
lldmap.test COFF: Implement /lldmap flag. 2015-06-26 18:58:24 +00:00
locally-imported.test COFF: Fix a bug of __imp_ symbol. 2015-06-25 03:31:47 +00:00
long-section-name.test COFF: Don't read non-x64 object files. 2015-06-26 00:42:21 +00:00
lto-chkstk.ll COFF: Handle references from LTO object to lazy symbols correctly. 2015-06-09 04:29:54 +00:00
lto-comdat.ll COFF: Symbol resolution for common and comdat symbols defined in bitcode. 2015-06-11 21:49:54 +00:00
lto-linker-opts.ll COFF: Read linker directives from bitcode files. 2015-06-06 02:00:45 +00:00
lto-new-symbol.ll COFF: Allow the combined LTO object to define new symbols. 2015-06-09 02:53:09 +00:00
lto.ll COFF: Skip internal symbols in bitcode files. 2015-06-08 20:21:28 +00:00
machine.test COFF: Implement subsystem inference. 2015-05-31 03:55:46 +00:00
manifest.test COFF: Support /manifest{,uac,dependency,file} options. 2015-06-18 00:12:42 +00:00
nodefaultlib.test COFF: Add /libpath option. 2015-05-31 20:10:11 +00:00
noentry.test COFF: Add /noentry flag. 2015-06-28 19:56:30 +00:00
opt.test COFF: Add /opt:noref option. 2015-06-07 03:17:42 +00:00
options.test COFF: Fix tests. 2015-06-16 23:51:58 +00:00
order.test COFF: Change symbol resolution order for entry and /include. 2015-06-26 03:44:00 +00:00
out.test COFF: Fix default output file path. 2015-06-07 00:20:32 +00:00
resource.test COFF: Fix resource table size. 2015-06-15 01:35:56 +00:00
responsefile.test COFF: Support resonpse files. 2015-06-07 02:55:19 +00:00
stack.test COFF: Support module-definition files. 2015-06-17 19:19:25 +00:00
subsystem-inference.test COFF: Implement subsystem inference. 2015-05-31 03:55:46 +00:00
subsystem.test COFF: Implement subsystem inference. 2015-05-31 03:55:46 +00:00
unwind.test COFF: Support exception table. 2015-06-21 04:00:54 +00:00
version.test COFF: Remove redundant options from tests. 2015-05-31 04:21:30 +00:00