## This checks that the group section is shrunk when its member is removed. # RUN: yaml2obj --docnum=1 %s -o - \ # RUN: | llvm-objcopy -R .foo - - \ # RUN: | obj2yaml - \ # RUN: | FileCheck %s # CHECK: - Name: .group # CHECK: Members: # CHECK-NEXT: - SectionOrType: GRP_COMDAT # CHECK-NEXT: - SectionOrType: .bar # CHECK-NOT: - SectionOrType: --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: EM_X86_64 Sections: - Name: .group Type: SHT_GROUP Info: foo_bar_grp Members: - SectionOrType: GRP_COMDAT - SectionOrType: .foo - SectionOrType: .bar - Name: .foo Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_GROUP ] - Name: .bar Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_GROUP ] Symbols: - Name: foo_bar_grp Section: .group Binding: STB_GLOBAL # RUN: yaml2obj --docnum=2 %s -o %t # RUN: llvm-objcopy --remove-section=.debug_macro %t # RUN: llvm-readelf --section-groups %t | FileCheck %s --check-prefix=GROUP-REMOVED --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: EM_X86_64 Sections: - Name: .group Type: SHT_GROUP Info: foo_grp Members: - SectionOrType: GRP_COMDAT - SectionOrType: .debug_macro - Name: .debug_macro Type: SHT_PROGBITS Flags: [ SHF_GROUP ] Symbols: - Name: foo_grp Section: .group # GROUP-REMOVED: There are no section groups in this file. # RUN: yaml2obj --docnum=3 %s -o %t # RUN: llvm-objcopy --remove-section=.group %t # RUN: llvm-readelf --section-groups %t | FileCheck %s --check-prefix=EMPTY-GROUP-REMOVED --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: EM_X86_64 Sections: - Name: .group Type: SHT_GROUP Info: foo_grp Members: - SectionOrType: GRP_COMDAT Symbols: - Name: foo_grp Section: .group # EMPTY-GROUP-REMOVED: There are no section groups in this file.