blob: e3bdc357ca0b9aaa46dd129c40e340c7bc1acdd6 [file] [log] [blame]
# RUN: yaml2obj %s -o %t
# RUN: llvm-objcopy --strip-dwo %t
# RUN: llvm-readobj --symbols -S --elf-section-groups %t | FileCheck %s
## `llvm-objcopy --strip-dwo` strips out dwo sections, as a result, the index of
## the symbol table, the indices of the symbols and the indices of the sections
## which go after the removed ones will change. Consequently, the fields
## Link, Info and the content of .group need to be updated.
# CHECK-NOT: .debug_
# CHECK: Groups {
# CHECK-NEXT: Group {
# CHECK-NEXT: Name: .group (1)
# CHECK-NEXT: Index: 1{{$}}
# CHECK-NEXT: Link: 6
# CHECK-NEXT: Info: 2
# CHECK-NEXT: Type: COMDAT (0x1)
# CHECK-NEXT: Signature: group1
# CHECK-NEXT: Section(s) in group [
# CHECK-NEXT: .text.group1 (3)
# CHECK-NEXT: ]
# CHECK-NOT: .debug_
# CHECK: Name: .group (1)
# CHECK-NEXT: Index: 2{{$}}
# CHECK-NEXT: Link: 6
# CHECK-NEXT: Info: 1
# CHECK-NEXT: Type: COMDAT (0x1)
# CHECK-NEXT: Signature: group2
# CHECK-NEXT: Section(s) in group [
# CHECK-NEXT: .text.group2 (4)
# CHECK-NEXT: .rela.text.group2 (5)
# CHECK-NEXT: ]
# CHECK-NOT: .debug_
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_X86_64
Sections:
- Name: .debug_before.dwo
Type: SHT_PROGBITS
- Name: .group
Type: SHT_GROUP
Link: .symtab
Info: group1
Members:
- SectionOrType: GRP_COMDAT
- SectionOrType: .text.group1
- Name: .text.group1
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ]
- Name: '.group (1)'
Type: SHT_GROUP
Link: .symtab
Info: group2
Members:
- SectionOrType: GRP_COMDAT
- SectionOrType: .text.group2
- SectionOrType: .rela.text.group2
- Name: .text.group2
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ]
- Name: .rela.text.group2
Type: SHT_RELA
Flags: [ SHF_GROUP ]
Info: .text.group2
- Name: .debug_after.dwo
Type: SHT_PROGBITS
Symbols:
- Name: debug_before
Section: .debug_before.dwo
- Name: group2
Section: .text.group2
- Name: group1
Section: .text.group1
- Name: debug_after
Section: .debug_after.dwo