1; REQUIRES: x86 2; 3; RUN: llc -filetype=obj %s -o %t.obj 4; RUN: llc -filetype=obj %p/Inputs/start-lib1.ll -o %t1.obj 5; RUN: llc -filetype=obj %p/Inputs/start-lib2.ll -o %t2.obj 6; RUN: opt -thinlto-bc %s -o %t.bc 7; RUN: opt -thinlto-bc %p/Inputs/start-lib1.ll -o %t1.bc 8; RUN: opt -thinlto-bc %p/Inputs/start-lib2.ll -o %t2.bc 9; 10; RUN: lld-link -out:%t1.exe -entry:main -opt:noref -lldmap:%t1.map \ 11; RUN: %t.obj %t1.obj %t2.obj 12; RUN: FileCheck --check-prefix=TEST1 %s < %t1.map 13; RUN: lld-link -out:%t1.exe -entry:main -opt:noref -lldmap:%t1.thinlto.map \ 14; RUN: %t.bc %t1.bc %t2.bc 15; RUN: FileCheck --check-prefix=TEST1 %s < %t1.thinlto.map 16; TEST1: foo 17; TEST1: bar 18; 19; RUN: lld-link -out:%t2.exe -entry:main -opt:noref -lldmap:%t2.map \ 20; RUN: %t.obj -start-lib %t1.obj -end-lib %t2.obj 21; RUN: FileCheck --check-prefix=TEST2 %s < %t2.map 22; RUN: lld-link -out:%t2.exe -entry:main -opt:noref -lldmap:%t2.thinlto.map \ 23; RUN: %t.bc -start-lib %t1.bc -end-lib %t2.bc 24; RUN: FileCheck --check-prefix=TEST2 %s < %t2.thinlto.map 25; TEST2: Address Size Align Out In Symbol 26; TEST2-NOT: {{ }}foo{{$}} 27; TEST2: {{ }}bar{{$}} 28; TEST2-NOT: {{ }}foo{{$}} 29; 30; RUN: lld-link -out:%t3.exe -entry:main -opt:noref -lldmap:%t3.map \ 31; RUN: %t.obj -start-lib %t1.obj %t2.obj 32; RUN: FileCheck --check-prefix=TEST3 %s < %t3.map 33; RUN: lld-link -out:%t3.exe -entry:main -opt:noref -lldmap:%t3.thinlto.map \ 34; RUN: %t.bc -start-lib %t1.bc %t2.bc 35; RUN: FileCheck --check-prefix=TEST3 %s < %t3.thinlto.map 36; TEST3: Address Size Align Out In Symbol 37; TEST3-NOT: {{ }}foo{{$}} 38; TEST3-NOT: {{ }}bar{{$}} 39 40target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128" 41target triple = "x86_64-pc-windows-msvc" 42 43define void @main() { 44 ret void 45} 46