llvm-capstone/lld/test
Sam Clegg 59f959ff33 [WebAssembly] Relax signature checking for undefined functions that are not called directly
When function signatures don't match and the undefined function is not
called directly (i.e. only has its address taken) we don't issue a
warning or create a runtime thunk for the undefined function.

Instead in this case we simply use the defined version of the function.
This is possible since checking signatures of dynamic calls happens
at runtime so any invalid usage will still result in a runtime error.

This is needed to allow C++ programs to link without generating
warnings.  Its not uncommon in C++ for vtables to be populated by
function address whee the signature of the function is not known in the
compilation unit.  In this case clang declares the method as void(void)
and relies on the vtable caller casting the data back to the correct
signature.

Fixes: https://bugs.llvm.org/show_bug.cgi?id=40412

Differential Revision: https://reviews.llvm.org/D62153

llvm-svn: 361678
2019-05-24 22:45:08 +00:00
..
COFF [COFF] Replace OutputSection* with uint16_t index in Chunk 2019-05-24 18:25:49 +00:00
darwin
Driver/Inputs
ELF [lld] Trace all references with lld --trace-symbol 2019-05-24 13:29:17 +00:00
mach-o [test] Change llvm-readobj -long-option to --long-option or well-known short options. NFC 2019-05-01 05:49:01 +00:00
MinGW [MinGW] Include --enable-auto-import in the help listing 2019-05-17 11:07:46 +00:00
Unit
wasm [WebAssembly] Relax signature checking for undefined functions that are not called directly 2019-05-24 22:45:08 +00:00
CMakeLists.txt
lit.cfg.py ELF: Change FileSize back to a uint64_t. 2019-03-01 18:53:41 +00:00
lit.site.cfg.py.in ELF: Change FileSize back to a uint64_t. 2019-03-01 18:53:41 +00:00