[ELF] relocateNonAlloc: clean up workaround code
[llvm-project.git] / lld / test / COFF / thinlto-index-file-object-prefix-replace.ll
blobefe03d62b9459deb1bc4a3993ca75abdc1cda951
1 ; REQUIRES: x86
2 ; RUN: rm -rf %t && mkdir %t
3 ; RUN: mkdir -p %t/old/subdir
4 ; RUN: opt -module-summary %s -o %t/old/subdir/1.obj
5 ; RUN: opt -module-summary %p/Inputs/thinlto.ll -o %t/old/subdir/2.obj
6 ; RUN: opt -module-summary %p/Inputs/thinlto-empty.ll -o %t/old/3.obj
8 ;; Ensure lld writes linked files to linked objects file.
9 ; RUN: lld-link -entry:main -thinlto-index-only:%t/1.txt  %t/old/subdir/1.obj %t/old/subdir/2.obj %t/old/3.obj -out:%t/t.exe
10 ; RUN: ls %t/old/subdir/1.obj.thinlto.bc
11 ; RUN: ls %t/old/subdir/2.obj.thinlto.bc
12 ; RUN: ls %t/old/3.obj.thinlto.bc
13 ; RUN: FileCheck  --check-prefix=CHECK-NO-REPLACE %s < %t/1.txt
14 ; CHECK-NO-REPLACE: old/subdir/1.obj
15 ; CHECK-NO-REPLACE-NEXT: old/subdir/2.obj
16 ; CHECK-NO-REPLACE-NEXT: old/3.obj
18 ;; Check that this also works with thinlto-prefix-replace.
19 ; RUN: lld-link -entry:main -thinlto-index-only:%t/2.txt -thinlto-prefix-replace:"%t/old/;%t/new/" %t/old/subdir/1.obj %t/old/subdir/2.obj %t/old/3.obj -out:%t/t.exe
20 ; RUN: ls %t/new/subdir/1.obj.thinlto.bc
21 ; RUN: ls %t/new/subdir/2.obj.thinlto.bc
22 ; RUN: ls %t/new/3.obj.thinlto.bc
23 ; RUN: FileCheck --check-prefix=CHECK-REPLACE-PREFIX  %s < %t/2.txt
24 ; CHECK-REPLACE-PREFIX: new/subdir/1.obj
25 ; CHECK-REPLACE-PREFIX-NEXT: new/subdir/2.obj
26 ; CHECK-REPLACE-PREFIX-NEXT: new/3.obj
28 ;; Check that this also works with replacing the prefix of linked objects.
29 ; RUN: lld-link -entry:main -thinlto-index-only:%t/3.txt -thinlto-prefix-replace:"%t/old/;%t/new/;%t/obj/" %t/old/subdir/1.obj %t/old/subdir/2.obj %t/old/3.obj -out:%t/t.exe
30 ; RUN: ls %t/new/subdir/1.obj.thinlto.bc
31 ; RUN: ls %t/new/subdir/2.obj.thinlto.bc
32 ; RUN: ls %t/new/3.obj.thinlto.bc
33 ; RUN: FileCheck --check-prefix=CHECK-REPLACE-OBJECT-PREFIX %s < %t/3.txt
34 ; CHECK-REPLACE-OBJECT-PREFIX: obj/subdir/1.obj
35 ; CHECK-REPLACE-OBJECT-PREFIX-NEXT: obj/subdir/2.obj
36 ; CHECK-REPLACE-OBJECT-PREFIX-NEXT: obj/3.obj
38 target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
39 target triple = "x86_64-pc-windows-msvc19.0.24215"
41 declare void @g(...)
43 define void @main() {
44   call void (...) @g()
45   ret void