# RUN: yaml2obj %s -o %t
# RUN: llvm-objcopy --remove-section=.text.bar %t %t1
# RUN: llvm-readobj --section-groups %t1 | FileCheck %s

# In this test the section .text.bar is getting removed, as a result, 
# the indices of the sections which go after .text.bar will change, 
# thus the fields Link, Info and the content of .group should be updated.

# CHECK:           Name: .group
# CHECK-NEXT:      Index: 1
# CHECK-NEXT:      Link: 3
# CHECK-NEXT:      Info: 2
# CHECK-NEXT:      Type: COMDAT (0x1)
# CHECK-NEXT:      Signature: foo
# CHECK:           .text.foo (2)

--- !ELF
FileHeader:      
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_X86_64
Sections:        
  - Name:            .group
    Type:            SHT_GROUP
    Link:            .symtab
    AddressAlign:    0x0000000000000004
    Info:            foo
    Members:         
      - SectionOrType:   GRP_COMDAT
      - SectionOrType:   .text.foo
  - Name:            .text.bar
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    AddressAlign:    0x0000000000000010
  - Name:            .text.foo
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ]
    AddressAlign:    0x0000000000000010
Symbols:
  - Name:            .text.bar
    Type:            STT_SECTION
    Section:         .text.bar
  - Name:            .text.foo
    Type:            STT_SECTION
    Section:         .text.foo
  - Name:            bar
    Type:            STT_FUNC
    Section:         .text.bar
    Size:            0x0000000000000000
    Binding:         STB_WEAK
  - Name:            foo
    Type:            STT_FUNC
    Section:         .text.foo
    Size:            0x0000000000000000
    Binding:         STB_WEAK

## This checks that tool will emit an error when trying to remove the symbol
## table when we have a group section linked with symtab.
# RUN: not llvm-objcopy -R .symtab %t %t2 2>&1 | FileCheck %s --check-prefix=ERR -DINPUT=%t

# ERR: error: '[[INPUT]]': section '.symtab' cannot be removed because it is referenced by the group section '.group'

## The '.symtab' section could be removed using --allow-broken-links option.
# RUN: llvm-objcopy --allow-broken-links -R .symtab %t %t3
# RUN: llvm-readelf --sections %t3 | FileCheck %s --check-prefix=SECTIONS

# SECTIONS: There are 6 section headers
# SECTIONS:      Name      Type   Address Off    Size   ES     Flg Lk Inf
# SECTIONS-NEXT: NULL
# SECTIONS-NEXT: .group    {{.+}} {{.+}}  {{.+}} {{.+}} {{.+}}     0  0
# SECTIONS-NEXT: .text.bar
# SECTIONS-NEXT: .text.foo
# SECTIONS-NEXT: .strtab
# SECTIONS-NEXT: .shstrtab

## Show that llvm-objcopy can handle a group section with a zero sh_link and
## sh_info fields.
# RUN: llvm-objcopy --allow-broken-links -R .symtab %t3 %t4
# RUN: cmp %t3 %t4

## The signature symbol becomes local. Assume the intention is to localize the group.
## Drop GRP_COMDAT so that the linker will suppress deduplication.
# RUN: llvm-objcopy --keep-global-symbol=bar %t %t5
# RUN: llvm-readelf -s --section-groups %t5 | FileCheck %s --check-prefix=LOCAL-SIG

# LOCAL-SIG:  LOCAL  DEFAULT [[#]] foo
# LOCAL-SIG:  (unknown) group section [ 1] `.group' [foo] contains 1 sections:

## The signature symbol remains non-local. Keep GRP_COMDAT.
# RUN: llvm-readelf -s --section-groups %t1 | FileCheck %s --check-prefix=WEAK-SIG

# WEAK-SIG:   WEAK   DEFAULT [[#]] foo
# WEAK-SIG:   COMDAT group section [ 1] `.group' [foo] contains 1 sections:

# RUN: llvm-objcopy --globalize-symbol=foo %t %t6
# RUN: llvm-readelf -s --section-groups %t6 | FileCheck %s --check-prefix=GLOBAL-SIG

# GLOBAL-SIG: GLOBAL DEFAULT [[#]] foo
# GLOBAL-SIG: COMDAT group section [ 1] `.group' [foo] contains 1 sections:

## If the signature is initially local and no operation has been performed to
## specifically localize it, it isn't clear whether we should drop GRP_COMDAT.
## The current convention is that compilers should not produce such input, so
## our choice does not matter.
# RUN: yaml2obj --docnum=2 %s -o %t.localsig
# RUN: llvm-objcopy %t.localsig %t.localsig.out
# RUN: llvm-readelf -s --section-groups %t.localsig.out | FileCheck %s --check-prefix=LOCAL-SIG

--- !ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_X86_64
Sections:
  - Name:  .group
    Type:  SHT_GROUP
    Info:  foo
    Members:
      - SectionOrType: GRP_COMDAT
      - SectionOrType: .text.foo
  - Name:  .text.foo
    Type:  SHT_PROGBITS
    Flags: [ SHF_GROUP ]
Symbols:
  - Name:    foo
    Type:    STT_FUNC
    Section: .text.foo
