[clang-tidy][modernize-use-starts-ends-with] Fix operator rewriting false negative...
[llvm-project.git] / lld / test / ELF / remap-inputs.test
blob0f9cafa987ac9ea5e71776028d29db739d8b0993
1 # REQUIRES: x86
2 ## --remap-inputs and --remap-inputs-file= remap input files.
4 # RUN: rm -rf %t && split-file %s %t && cd %t
5 # RUN: llvm-mc -filetype=obj -triple=x86_64 a.s -o a.o
6 # RUN: llvm-as b.ll -o b.o
7 # RUN: llvm-mc -filetype=obj -triple=x86_64 c.s -o c.o && llvm-ar rc c.a c.o
8 # RUN: llvm-mc -filetype=obj -triple=x86_64 d.s -o d.o && ld.lld -shared -soname=d d.o -o d.so
9 # RUN: ld.lld --remap-inputs-file=1.map --remap-inputs-file=2.map --remap-inputs='d*.so=d.so' --reproduce=repro.tar aa.o bb.bc cc.a dd.so empty -o out
10 # RUN: tar tf repro.tar | FileCheck %s --check-prefix=REPRO
12 # REPRO:      1.map
13 # REPRO-NEXT: 2.map
14 # REPRO-NEXT: a.o
15 # REPRO-NEXT: b.o
16 # REPRO-NEXT: c.a
17 # REPRO-NEXT: d.so
19 ## --remap-inputs can also be specified multiple times.
20 # RUN: ld.lld --remap-inputs 'aa.o=a.o' --remap-inputs='d[d].so=d.so' aa.o b.o c.a d.so -o /dev/null
22 ## A multiple-to-one pattern may easily cause issues. Users should be careful.
23 # RUN: not ld.lld --remap-inputs-file=3.map aa.o bb.bc -o /dev/null 2>&1 | \
24 # RUN:   FileCheck %s --check-prefix=DUPLICATE --implicit-check-not=error:
25 # DUPLICATE: error: duplicate symbol: _start
27 # RUN: not ld.lld --remap-inputs-file=err1.map aa.o bb.bc -o /dev/null 2>&1 | \
28 # RUN:   FileCheck %s --check-prefix=ERR1 --implicit-check-not=error:
29 # ERR1:      error: err1.map:2: parse error, not 'from-glob=to-file'
30 # ERR1-NEXT: error: cannot open bb.bc: {{.*}}
32 # RUN: not ld.lld --remap-inputs-file=err2.map aa.o -o /dev/null 2>&1 | \
33 # RUN:   FileCheck %s --check-prefix=ERR2 --implicit-check-not=error:
34 # ERR2:      error: err2.map:1: invalid glob pattern, unmatched '[': aa.[o
35 # ERR2-NEXT: error: cannot open aa.o: {{.*}}
37 # RUN: not ld.lld --remap-inputs=aa.o aa.o -o /dev/null 2>&1 | \
38 # RUN:   FileCheck %s --check-prefix=ERR3 --implicit-check-not=error:
39 # RUN: not ld.lld --remap-inputs=aa.o= aa.o -o /dev/null 2>&1 | \
40 # RUN:   FileCheck %s --check-prefix=ERR3 --implicit-check-not=error:
41 # ERR3:      error: --remap-inputs: parse error, not 'from-glob=to-file'
42 # ERR3-NEXT: error: cannot open aa.o: {{.*}}
44 #--- a.s
45 .globl _start
46 _start:
47   call b
48   call c
49   call d
51 #--- b.ll
52 target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
53 target triple = "x86_64-unknown-linux-gnu"
55 define void @b() {
56   ret void
59 #--- c.s
60 .globl c
63 #--- d.s
64 .globl d
67 #--- 1.map
68 aa.o=a.o
69 b?.[b]c=b.o
71 #--- 2.map
72 cc.a=c.a
73 ## Use /dev/null to indicate an input file which should be ignored.
74 empty=/dev/null
76 #--- 3.map
77 *=a.o
79 #--- err1.map
80 aa.o=a.o
81 bb.bc
82 cc.a
84 #--- err2.map
85 aa.[o=a.o