## This test checks that both grouped and ungrouped options (-S -x and -Sx)
## produce exactly the same result given the same input.

# RUN: yaml2obj %s -o %t
# RUN: llvm-strip -S -x -o %t-strip-separated %t
# RUN: llvm-strip -Sx -o %t-strip-grouped %t
# RUN: cmp %t-strip-separated %t-strip-grouped

# RUN: llvm-objcopy -S -x %t %t-objcopy-separated
# RUN: llvm-objcopy -Sx %t %t-objcopy-grouped
# RUN: cmp %t-objcopy-separated %t-objcopy-grouped

!ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_X86_64
Sections:
  - Name:            .debugGlobal
    Type:            SHT_PROGBITS
    Content:         "00000000"
  - Name:            .text
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    Address:         0x1000
    AddressAlign:    0x0000000000000010
    Size:            64
Symbols:
  - Name:     Local
    Type:     STT_FUNC
    Section:  .text
    Value:    0x1000
    Size:     8
  - Name:     LocalSection
    Type:     STT_SECTION
    Section:  .text
  - Name:     LocalFile
    Type:     STT_FILE
  - Name:     Global
    Type:     STT_FUNC
    Size:     8
    Section:  .text
    Value:    0x1010
    Binding:  STB_GLOBAL
  - Name:     Weak
    Type:     STT_FUNC
    Size:     8
    Section:  .text
    Value:    0x1008
  - Name:    debugGlobal
    Section: .debugGlobal
    Binding:  STB_GLOBAL
