65 lines · plain
1# REQUIRES: x862 3# RUN: llvm-mc -filetype=obj -triple=x86_64-windows-msvc -o %t.main.obj %s4 5# RUN: llvm-mc -filetype=obj -triple=x86_64-windows-msvc -o %t.lib.obj \6# RUN: %S/Inputs/mangled-symbol.s7# RUN: lld-link /lib /out:%t.lib %t.lib.obj8# RUN: lld-link /lib /llvmlibindex:no /out:%t_noindex.lib %t.lib.obj9# RUN: lld-link /lib /llvmlibthin /llvmlibindex /out:%t_thin.lib %t.lib.obj10# RUN: lld-link /lib /llvmlibthin /llvmlibindex:no \11# RUN: /out:%t_thin_noindex.lib %t.lib.obj12 13# RUN: llvm-nm --print-armap %t.lib \14# RUN: | FileCheck %s --check-prefix=SYMTAB15# RUN: llvm-nm --print-armap %t_noindex.lib \16# RUN: | FileCheck %s --check-prefix=NO-SYMTAB17# RUN: llvm-nm --print-armap %t_thin.lib \18# RUN: | FileCheck %s --check-prefix=SYMTAB19# RUN: llvm-nm --print-armap %t_thin_noindex.lib \20# RUN: | FileCheck %s --check-prefix=NO-SYMTAB21 22# SYMTAB: ?f@@YAHXZ in23# NO-SYMTAB-NOT: ?f@@YAHXZ in24 25# RUN: echo "/entry:main \"%t.main.obj\" /out:\"%t.exe\"" > %t.rsp26 27# RUN: lld-link @%t.rsp %t.lib /verbose 2>&1 | \28# RUN: FileCheck %s --check-prefix=LOAD_NON_THIN29# RUN: lld-link @%t.rsp %t_thin.lib /verbose 2>&1 | \30# RUN: FileCheck %s --check-prefix=LOAD_THIN_SYM31# RUN: lld-link @%t.rsp /wholearchive:%t_thin.lib /verbose 2>&1 | \32# RUN: FileCheck %s --check-prefix=LOAD_THIN_WHOLE33# RUN: lld-link @%t.rsp /wholearchive %t_thin.lib /verbose 2>&1 | \34# RUN: FileCheck %s --check-prefix=LOAD_THIN_WHOLE35 36# LOAD_NON_THIN: Loaded {{.*}}.lib({{.*}}.obj) for int __cdecl f(void)37# LOAD_THIN_SYM: Loaded {{.*}}.obj for int __cdecl f(void)38# LOAD_THIN_WHOLE: Loaded {{.*}}.obj for <whole-archive>39 40# RUN: rm %t.lib.obj41# RUN: lld-link @%t.rsp %t.lib 2>&1 | \42# RUN: FileCheck %s --check-prefix=ERR --allow-empty43# RUN: env LLD_IN_TEST=1 not lld-link @%t.rsp %t_thin.lib 2>&1 | \44# RUN: FileCheck %s --check-prefix=NOOBJ45# RUN: env LLD_IN_TEST=1 not lld-link @%t.rsp /wholearchive:%t_thin.lib 2>&1 | \46# RUN: FileCheck %s --check-prefix=NOOBJWHOLE47# RUN: env LLD_IN_TEST=1 not lld-link @%t.rsp %t_thin.lib /demangle:no 2>&1 | \48# RUN: FileCheck %s --check-prefix=NOOBJNODEMANGLE49 50# ERR-NOT: error: could not get the buffer for the member defining51# NOOBJ: error: could not get the buffer for the member defining symbol int __cdecl f(void): {{.*}}.lib({{.*}}.lib.obj):52# NOOBJWHOLE: error: {{.*}}.lib: could not get the buffer for a child of the archive: '{{.*}}.obj'53# NOOBJNODEMANGLE: error: could not get the buffer for the member defining symbol ?f@@YAHXZ: {{.*}}.lib({{.*}}.lib.obj):54 55 .text56 57 .def main58 .scl 259 .type 3260 .endef61 .global main62main:63 call "?f@@YAHXZ"64 retq $065