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