137 lines · plain
1; REQUIRES: x862; RUN: mkdir -p %t.dir3; RUN: llvm-as -o %t.dir/main.lto.obj %s4; RUN: llvm-as -o %t.dir/foo.lto.obj %S/Inputs/lto-dep.ll5; RUN: rm -f %t.dir/foo.lto.lib6; RUN: llvm-ar cru %t.dir/foo.lto.lib %t.dir/foo.lto.obj7 8; RUN: llc -filetype=obj -o %t.dir/main.obj %s9; RUN: llc -filetype=obj -o %t.dir/foo.obj %S/Inputs/lto-dep.ll10; RUN: rm -f %t.dir/foo.lib11; RUN: llvm-ar cru %t.dir/foo.lib %t.dir/foo.obj12 13; RUN: lld-link /out:%t.dir/main.exe /entry:main /include:f2 /subsystem:console %t.dir/main.lto.obj %t.dir/foo.lto.obj14; RUN: llvm-readobj --file-headers %t.dir/main.exe | FileCheck -check-prefix=HEADERS-11 %s15; RUN: llvm-objdump --no-print-imm-hex -d %t.dir/main.exe | FileCheck --check-prefix=TEXT-11 %s16; RUN: lld-link /out:%t.dir/main.exe /entry:main /include:f2 /subsystem:console %t.dir/main.lto.obj %t.dir/foo.lto.lib /verbose 2>&1 | FileCheck -check-prefix=VERBOSE %s17; RUN: llvm-readobj --file-headers %t.dir/main.exe | FileCheck -check-prefix=HEADERS-11 %s18; RUN: llvm-objdump --no-print-imm-hex -d %t.dir/main.exe | FileCheck --check-prefix=TEXT-11 %s19 20; RUN: lld-link /out:%t.dir/main.exe /entry:main /subsystem:console %t.dir/main.obj %t.dir/foo.lto.obj21; RUN: llvm-readobj --file-headers %t.dir/main.exe | FileCheck -check-prefix=HEADERS-01 %s22; RUN: llvm-objdump --no-print-imm-hex -d %t.dir/main.exe | FileCheck --check-prefix=TEXT-01 %s23; RUN: lld-link /out:%t.dir/main.exe /entry:main /subsystem:console %t.dir/main.obj %t.dir/foo.lto.lib24; RUN: llvm-readobj --file-headers %t.dir/main.exe | FileCheck -check-prefix=HEADERS-01 %s25; RUN: llvm-objdump --no-print-imm-hex -d %t.dir/main.exe | FileCheck --check-prefix=TEXT-01 %s26 27; RUN: lld-link /out:%t.dir/main.exe /entry:main /subsystem:console %t.dir/main.lto.obj %t.dir/foo.obj28; RUN: llvm-readobj --file-headers %t.dir/main.exe | FileCheck -check-prefix=HEADERS-10 %s29; RUN: llvm-objdump --no-print-imm-hex -d %t.dir/main.exe | FileCheck --check-prefix=TEXT-10 %s30; RUN: lld-link /out:%t.dir/main.exe /entry:main /subsystem:console %t.dir/main.lto.obj %t.dir/foo.lib31; RUN: llvm-readobj --file-headers %t.dir/main.exe | FileCheck -check-prefix=HEADERS-10 %s32; RUN: llvm-objdump --no-print-imm-hex -d %t.dir/main.exe | FileCheck --check-prefix=TEXT-10 %s33 34; VERBOSE: foo.lto.lib({{.*}}foo.lto.obj)35 36; HEADERS-11: AddressOfEntryPoint: 0x100037; TEXT-11: Disassembly of section .text:38; TEXT-11-EMPTY:39; TEXT-11-NEXT: <.text>:40; TEXT-11-NEXT: xorl %eax, %eax41; TEXT-11-NEXT: retq42; TEXT-11-NEXT: int343; TEXT-11-NEXT: int344; TEXT-11-NEXT: int345; TEXT-11-NEXT: int346; TEXT-11-NEXT: int347; TEXT-11-NEXT: int348; TEXT-11-NEXT: int349; TEXT-11-NEXT: int350; TEXT-11-NEXT: int351; TEXT-11-NEXT: int352; TEXT-11-NEXT: int353; TEXT-11-NEXT: int354; TEXT-11-NEXT: int355; TEXT-11-NEXT: movl $2, %eax56; TEXT-11-NEXT: retq57 58; HEADERS-01: AddressOfEntryPoint: 0x100059; TEXT-01: Disassembly of section .text:60; TEXT-01-EMPTY:61; TEXT-01-NEXT: <.text>:62; TEXT-01-NEXT: subq $40, %rsp63; TEXT-01-NEXT: callq 0x14000102064; TEXT-01-NEXT: xorl %eax, %eax65; TEXT-01-NEXT: addq $40, %rsp66; TEXT-01-NEXT: retq67; TEXT-01-NEXT: retq68; TEXT-01-NEXT: int369; TEXT-01-NEXT: int370; TEXT-01-NEXT: int371; TEXT-01-NEXT: int372; TEXT-01-NEXT: int373; TEXT-01-NEXT: int374; TEXT-01-NEXT: int375; TEXT-01-NEXT: int376; TEXT-01-NEXT: int377; TEXT-01-NEXT: int378; TEXT-01-NEXT: int379; TEXT-01-NEXT: int380; TEXT-01-NEXT: int381; TEXT-01-NEXT: int382; TEXT-01-NEXT: int383; TEXT-01-NEXT: retq84 85; HEADERS-10: AddressOfEntryPoint: 0x102086; TEXT-10: Disassembly of section .text:87; TEXT-10-EMPTY:88; TEXT-10-NEXT: <.text>:89; TEXT-10-NEXT: retq90; TEXT-10-NEXT: nopw %cs:(%rax,%rax)91; TEXT-10-NEXT: nopl (%rax,%rax)92; TEXT-10-NEXT: retq93; TEXT-10-NEXT: int394; TEXT-10-NEXT: int395; TEXT-10-NEXT: int396; TEXT-10-NEXT: int397; TEXT-10-NEXT: int398; TEXT-10-NEXT: int399; TEXT-10-NEXT: int3100; TEXT-10-NEXT: int3101; TEXT-10-NEXT: int3102; TEXT-10-NEXT: int3103; TEXT-10-NEXT: int3104; TEXT-10-NEXT: int3105; TEXT-10-NEXT: int3106; TEXT-10-NEXT: int3107; TEXT-10-NEXT: int3108; TEXT-10-NEXT: subq $40, %rsp109; TEXT-10-NEXT: callq 0x140001000110; TEXT-10-NEXT: xorl %eax, %eax111; TEXT-10-NEXT: addq $40, %rsp112; TEXT-10-NEXT: retq113 114target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"115target triple = "x86_64-pc-windows-msvc"116 117define i32 @main() {118 call void @foo()119 ret i32 0120}121 122declare void @foo()123 124$f1 = comdat any125define i32 @f1() comdat($f1) {126 ret i32 1127}128 129$f2 = comdat any130define i32 @f2() comdat($f2) {131 ret i32 2132}133 134define internal void @internal() {135 ret void136}137