[HLSL] Implement RWBuffer::operator[] via __builtin_hlsl_resource_getpointer (#117017)
[llvm-project.git] / llvm / test / tools / llvm-objcopy / ELF / skip-symbol.test
blob0f3ab808482ba5ff9c959100241cde05547f7f19
1 ## This test checks the functionality of options --skip-symbol and --skip-symbols.
2 # RUN: yaml2obj %s -o %t.o
3 # RUN: echo 'foo[2-3]' > %t.skip.regex
5 ## Check --skip-symbol functionality when changing symbol bindings.
6 # RUN: llvm-objcopy %t.o %t2.o --localize-hidden --skip-symbol=foo3
7 # RUN: llvm-readelf -s %t2.o | FileCheck %s --check-prefix=LH-SYM
8 # LH-SYM-DAG: LOCAL  HIDDEN      1 foo1
9 # LH-SYM-DAG: LOCAL  HIDDEN      1 foo2
10 # LH-SYM-DAG: GLOBAL HIDDEN      1 foo3
11 # LH-SYM-DAG: LOCAL  HIDDEN      1 foo4
12 # LH-SYM-DAG: LOCAL  HIDDEN      1 foo5
14 ## Check --skip-symbols functionality when changing symbol bindings.
15 # RUN: llvm-objcopy %t.o %t1.o --localize-hidden --skip-symbols=%t.skip.regex --regex
16 # RUN: llvm-readelf -s %t1.o | FileCheck %s --check-prefix=LH-SYMS
17 # LH-SYMS-DAG: LOCAL  HIDDEN      1 foo1
18 # LH-SYMS-DAG: GLOBAL HIDDEN      1 foo2
19 # LH-SYMS-DAG: GLOBAL HIDDEN      1 foo3
20 # LH-SYMS-DAG: LOCAL  HIDDEN      1 foo4
21 # LH-SYMS-DAG: LOCAL  HIDDEN      1 foo5
23 ## Check --skip-symbol functionality when changing symbol names.
24 # RUN: echo -e "foo1 bar1\nfoo2 bar2" > %t.renames.list
25 # RUN: llvm-objcopy %t.o %t4.o --redefine-syms=%t.renames.list \
26 # RUN:   --skip-symbol='fo*' --wildcard
27 # RUN: llvm-readelf -s %t4.o | FileCheck %s --check-prefix=RS-SYM
28 # RS-SYM-DAG: foo1
29 # RS-SYM-DAG: foo2
30 # RS-SYM-DAG: foo3
31 # RS-SYM-DAG: foo4
32 # RS-SYM-DAG: foo5
34 ## Check --skip-symbols functionality when changing symbol names.
35 # RUN: llvm-objcopy %t.o %t3.o --redefine-syms=%t.renames.list \
36 # RUN:   --skip-symbols=%t.skip.regex --regex
37 # RUN: llvm-readelf -s %t3.o | FileCheck %s --check-prefix=RS-SYMS
38 # RS-SYMS-DAG: bar1
39 # RS-SYMS-DAG: foo2
40 # RS-SYMS-DAG: foo3
41 # RS-SYMS-DAG: foo4
42 # RS-SYMS-DAG: foo5
44 ## Check the functionality when using skip options multiple times.
45 # RUN: echo "foo3" > %t.symbol0.list
46 # RUN: echo "foo4" > %t.symbol1.list
47 # RUN: llvm-objcopy %t.o %t5.o --set-symbol-visibility='foo*'=internal --wildcard \
48 # RUN:   --skip-symbol=foo1 --skip-symbol=foo2 \
49 # RUN:   --skip-symbols=%t.symbol0.list --skip-symbols=%t.symbol1.list
50 # RUN: llvm-readelf -s %t5.o | FileCheck %s --check-prefix=BOTH
51 # BOTH-DAG: GLOBAL HIDDEN      1 foo1
52 # BOTH-DAG: GLOBAL HIDDEN      1 foo2
53 # BOTH-DAG: GLOBAL HIDDEN      1 foo3
54 # BOTH-DAG: GLOBAL HIDDEN      1 foo4
55 ## Only foo5 is not skipped.
56 # BOTH-DAG: GLOBAL INTERNAL    1 foo5
58 ## Check that using an invalid symbol name regex generates an error.
59 # RUN: echo '*.' > %t.symbols.regex
60 # RUN: not llvm-objcopy %t.o --skip-symbols=%t.symbols.regex --regex 2>&1 | \
61 # RUN:   FileCheck %s --check-prefix=SYMBOL
62 # RUN: not llvm-objcopy %t.o --skip-symbol='*.' --regex 2>&1 | \
63 # RUN:   FileCheck %s --check-prefix=SYMBOL
64 # SYMBOL: error: cannot compile regular expression '*.': repetition-operator operand invalid
66 ## Check passing an invalid filename generates an error.
67 # RUN: not llvm-objcopy %t.o --skip-symbols=no_file 2>&1 | \
68 # RUN:   FileCheck %s --check-prefix=FILE -DMSG=%errc_ENOENT
69 # FILE: error: 'no_file': [[MSG]]
71 !ELF
72 FileHeader:
73   Class:   ELFCLASS64
74   Data:    ELFDATA2LSB
75   Type:    ET_REL
76   Machine: EM_X86_64
77 Sections:
78   - Name: .text
79     Type: SHT_PROGBITS
80 Symbols:
81   - Name:    foo1
82     Section: .text
83     Binding: STB_GLOBAL
84     Other:   [ STV_HIDDEN ]
85   - Name:    foo2
86     Section: .text
87     Binding: STB_GLOBAL
88     Other:   [ STV_HIDDEN ]
89   - Name:    foo3
90     Section: .text
91     Binding: STB_GLOBAL
92     Other:   [ STV_HIDDEN ]
93   - Name:    foo4
94     Section: .text
95     Binding: STB_GLOBAL
96     Other:   [ STV_HIDDEN ]
97   - Name:    foo5
98     Section: .text
99     Binding: STB_GLOBAL
100     Other:   [ STV_HIDDEN ]