# RUN: yaml2obj %s -o %t.o

# Tests that only global symbols (via -G/--keep-global-symbols) are kept via
# the several different variants of -G/--keep-global-symbol(s).
#
# Local1: Local because "-G Local1" doesn't make symbols global.
# Local2: Global because of "--globalize-symbol Local2".
# Weak1: Weak because "-G Weak1" doesn't make symbols global.
# Weak2: Global because of "--globalize-symbol Weak2".
# Weak3: Local because no -G flag covers it.
# Global1: Global because of "-G Global1".
# Global2: Global because of "--keep-global-symbol Global2".
# Global3: Global because of "--keep-global-symbols %t-globals1.txt".
# Global4: Global because of "--keep-global-symbols %t-globals2.txt".
# Global5: Local, it appears in %t-globals2.txt but only in comments and as
#     part of another symbol
# Global6: Local, it appears in %t-globals2.txt but only part of another symbol
# "Global5 Global6": Global, because it appears in %t-globals2.txt, but we only
#     trim leading and trailing whitespace. We don't just take the first chunk
#     that looks like a symbol.
# Global7: Global, because even though it doesn't appear as any -G flags, does
#     not get demoted since it's undefined.

# RUN: echo Global2 > %t-globals1.txt
# RUN: echo "  Global3  " > %t-globals2.txt
# RUN: echo "Global4 # Global5" >> %t-globals2.txt
# RUN: echo "  Global5 Global6  " >> %t-globals2.txt
# RUN: echo "Unknown" >> %t-globals2.txt
# RUN: echo "   " >> %t-globals2.txt
# RUN: echo "# File with no symbols" > %t-globals3.txt
# RUN: echo "^Global[0-9]+([[:space:]]Global6)*$" > %t-globals-regexp.txt

# RUN: llvm-objcopy \
# RUN:   -G Global1 \
# RUN:   --keep-global-symbol Global2 \
# RUN:   --keep-global-symbols %t-globals1.txt \
# RUN:   --keep-global-symbols %t-globals2.txt \
# RUN:   -G Local1 \
# RUN:   --globalize-symbol Local2 \
# RUN:   -G Weak1 \
# RUN:   --globalize-symbol Weak2 \
# RUN:   %t.o %t.2.o
# RUN: llvm-readelf --symbols %t.2.o | FileCheck %s

# RUN: llvm-objcopy  --regex --keep-global-symbols %t-globals-regexp.txt %t.o %t.3.o
# RUN: llvm-readelf --symbols %t.3.o | FileCheck %s --check-prefix=REGEXP

# RUN: llvm-objcopy --regex --keep-global-symbol='^Global[0-9]+([[:space:]]Global6)*$' %t.o %t.4.o
# RUN: cmp %t.3.o %t.4.o

!ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_X86_64
Sections:
  - Name:          .text
    Type:          SHT_PROGBITS
    Flags:         [ SHF_ALLOC, SHF_EXECINSTR ]
Symbols:
  - Name:        Local1
    Section:     .text
  - Name:        Local2
    Section:     .text
  - Name:        Global1
    Section:     .text
    Binding:     STB_GLOBAL
  - Name:        Global2
    Section:     .text
    Binding:     STB_GLOBAL
  - Name:        Global3
    Section:     .text
    Binding:     STB_GLOBAL
  - Name:        Global4
    Section:     .text
    Binding:     STB_GLOBAL
  - Name:        Global5
    Section:     .text
    Binding:     STB_GLOBAL
  - Name:        Global6
    Section:     .text
    Binding:     STB_GLOBAL
  - Name:        "Global5 Global6"
    Section:     .text
    Binding:     STB_GLOBAL
  - Name:        Global7
    Binding:     STB_GLOBAL
  - Name:        Weak1
    Section:     .text
    Binding:     STB_WEAK
  - Name:        Weak2
    Section:     .text
    Binding:     STB_WEAK
  - Name:        Weak3
    Section:     .text
    Binding:     STB_WEAK

# CHECK:      Symbol table '.symtab' contains 14 entries:
# CHECK-NEXT:    Num: Value Size Type Bind Vis Ndx Name
# CHECK-NEXT:      0: {{.*}}  LOCAL  {{.*}}
# CHECK-NEXT:      1: {{.*}}  LOCAL  {{.*}} Local1
# CHECK-NEXT:      2: {{.*}}  LOCAL  {{.*}} Global5
# CHECK-NEXT:      3: {{.*}}  LOCAL  {{.*}} Global6
# CHECK-NEXT:      4: {{.*}}  LOCAL  {{.*}} Weak3
# CHECK-NEXT:      5: {{.*}}  GLOBAL {{.*}} Local2
# CHECK-NEXT:      6: {{.*}}  GLOBAL {{.*}} Global1
# CHECK-NEXT:      7: {{.*}}  GLOBAL {{.*}} Global2
# CHECK-NEXT:      8: {{.*}}  GLOBAL {{.*}} Global3
# CHECK-NEXT:      9: {{.*}}  GLOBAL {{.*}} Global4
# CHECK-NEXT:     10: {{.*}}  GLOBAL {{.*}} Global5 Global6
# CHECK-NEXT:     11: {{.*}}  GLOBAL {{.*}} UND Global7
# CHECK-NEXT:     12: {{.*}}  WEAK   {{.*}} Weak1
# CHECK-NEXT:     13: {{.*}}  GLOBAL {{.*}} Weak2

# REGEXP:           6: {{.*}}  GLOBAL {{.*}} Global1
# REGEXP-NEXT:      7: {{.*}}  GLOBAL {{.*}} Global2
# REGEXP-NEXT:      8: {{.*}}  GLOBAL {{.*}} Global3
# REGEXP-NEXT:      9: {{.*}}  GLOBAL {{.*}} Global4
# REGEXP-NEXT:     10: {{.*}}  GLOBAL {{.*}} Global5
# REGEXP-NEXT:     11: {{.*}}  GLOBAL {{.*}} Global6
# REGEXP-NEXT:     12: {{.*}}  GLOBAL {{.*}} Global5 Global6
# REGEXP-NEXT:     13: {{.*}}  GLOBAL {{.*}} UND Global7
