# RUN: yaml2obj %s -o %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: ]