1# REQUIRES: x86
2
3# RUN: llvm-mc -filetype=obj -triple=x86_64-windows-msvc -o %t.main.obj %s
4
5# RUN: llvm-mc -filetype=obj -triple=x86_64-windows-msvc -o %t.lib.obj \
6# RUN:     %S/Inputs/mangled-symbol.s
7# RUN: lld-link /lib /out:%t.lib %t.lib.obj
8# RUN: lld-link /lib /llvmlibthin /out:%t_thin.lib %t.lib.obj
9
10# RUN: lld-link /entry:main %t.main.obj %t.lib /out:%t.exe 2>&1 | \
11# RUN:     FileCheck --allow-empty %s
12# RUN: lld-link /entry:main %t.main.obj %t_thin.lib /out:%t.exe 2>&1 | \
13# RUN:     FileCheck --allow-empty %s
14# RUN: lld-link /entry:main %t.main.obj /wholearchive:%t_thin.lib /out:%t.exe 2>&1 | \
15# RUN:     FileCheck --allow-empty %s
16
17# RUN: rm %t.lib.obj
18# RUN: lld-link /entry:main %t.main.obj %t.lib /out:%t.exe 2>&1 | \
19# RUN:     FileCheck --allow-empty %s
20# RUN: not lld-link /entry:main %t.main.obj %t_thin.lib /out:%t.exe 2>&1 | \
21# RUN:     FileCheck --check-prefix=NOOBJ %s
22# RUN: not lld-link /entry:main %t.main.obj %t_thin.lib /out:%t.exe \
23# RUN:     /demangle:no 2>&1 | FileCheck --check-prefix=NOOBJNODEMANGLE %s
24
25# CHECK-NOT: error: could not get the buffer for the member defining
26# NOOBJ: error: could not get the buffer for the member defining symbol int __cdecl f(void): {{.*}}.lib({{.*}}.lib.obj):
27# NOOBJNODEMANGLE: error: could not get the buffer for the member defining symbol ?f@@YAHXZ: {{.*}}.lib({{.*}}.lib.obj):
28
29	.text
30
31	.def main
32		.scl 2
33		.type 32
34	.endef
35	.global main
36main:
37	call "?f@@YAHXZ"
38	retq $0
39