mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-29 11:17:28 +00:00
3785a413fe
Add a simple forwarding option in the MinGW frontend, and implement the private -wrap option in the COFF linker. The feature in lld-link isn't gated by the -lldmingw option, but the option is left as a private, undocumented option primarily used by the MinGW driver. The implementation is significantly based on the support for --wrap in the ELF linker, but many small nuance details are different between the ELF and COFF linkers, ending up with more than a few implementation differences. This fixes https://bugs.llvm.org/show_bug.cgi?id=47384. Differential Revision: https://reviews.llvm.org/D89004 Reapplied with the bitfield member canInline fixed so it doesn't break builds targeting windows.
22 lines
595 B
ArmAsm
22 lines
595 B
ArmAsm
// REQUIRES: x86
|
|
// RUN: llvm-mc -filetype=obj -triple=x86_64-win32-gnu %s -o %t.obj
|
|
|
|
// RUN: not lld-link -lldmingw -out:%t.exe %t.obj -entry:entry -subsystem:console -wrap:foo 2>&1 | FileCheck %s
|
|
|
|
// Check that we error out properly with an undefined symbol, if
|
|
// __real_foo is referenced and missing, even if the -lldmingw flag is set
|
|
// (which otherwise tolerates certain cases of references to missing
|
|
// sections, to tolerate certain GCC pecularities).
|
|
|
|
// CHECK: error: undefined symbol: foo
|
|
|
|
.global entry
|
|
entry:
|
|
call foo
|
|
ret
|
|
|
|
.global __wrap_foo
|
|
__wrap_foo:
|
|
call __real_foo
|
|
ret
|