1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
| # RUN: yaml2obj %s > %t
# No symbol matches, because pattern is implicitly enveloped in '^$'
# RUN: llvm-objcopy --discard-all --regex -K 'ba' %t %t2
# RUN: llvm-readobj --symbols %t2 | FileCheck %s --check-prefix=REGEX1
# Symbol 'bar' matches
# RUN: llvm-objcopy --discard-all --regex -K 'ba.*' %t %t3
# RUN: llvm-readobj --symbols %t3 | FileCheck %s --check-prefix=REGEX2
# All symbols match
# RUN: llvm-objcopy --discard-all --regex -K '.*ba.*' %t %t4
# RUN: llvm-readobj --symbols %t4 | FileCheck %s --check-prefix=REGEX3
# All symbols match
# RUN: llvm-objcopy --discard-all --regex -K '^([a-z]+)*ba.*$' %t %t5
# RUN: cmp %t4 %t5
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
Address: 0x1000
AddressAlign: 0x0000000000000010
Size: 64
Symbols:
- Name: foobaz
Type: STT_FUNC
Section: .text
Value: 0x1000
Size: 8
- Name: bar
Type: STT_FUNC
Section: .text
Value: 0x1008
Size: 8
- Name: rebar
Type: STT_FUNC
Section: .text
Value: 0x1010
Size: 8
#REGEX1: Symbols [
#REGEX1-NOT: Name: foobaz
#REGEX1-NOT: Name: bar
#REGEX1-NOT: Name: rebar
#REGEX1: ]
#REGEX2: Symbols [
#REGEX2-NOT: Name: foobaz
#REGEX2: Name: bar
#REGEX2-NOT: Name: rebar
#REGEX2: ]
#REGEX3: Symbols [
#REGEX3: Name: foobaz
#REGEX3: Name: bar
#REGEX3: Name: rebar
#REGEX3: ]
|