Index: llvm/test/tools/obj2yaml/ELF/section-group.yaml =================================================================== --- llvm/test/tools/obj2yaml/ELF/section-group.yaml +++ llvm/test/tools/obj2yaml/ELF/section-group.yaml @@ -1,30 +1,17 @@ ## Checks that the tool is able to read section groups from ELF. -# RUN: yaml2obj --docnum=1 %s -o %t1.o -# RUN: llvm-readobj --elf-section-groups %t1.o | FileCheck %s -check-prefix=OBJ -# RUN: obj2yaml %t1.o | FileCheck %s --check-prefix YAML - -# OBJ: Groups { -# OBJ-NEXT: Group { -# OBJ-NEXT: Name: .group -# OBJ-NEXT: Index: 1 -# OBJ-NEXT: Link: 3 -# OBJ-NEXT: Info: 1 -# OBJ-NEXT: Type: COMDAT (0x1) -# OBJ-NEXT: Signature: signature -# OBJ-NEXT: Section(s) in group [ -# OBJ-NEXT: .rodata (2) -# OBJ-NEXT: ] -# OBJ-NEXT: } -# OBJ-NEXT: } - -# YAML: - Name: .group -# YAML: Type: SHT_GROUP -# YAML: Link: .symtab -# YAML: Info: signature -# YAML: Members: -# YAML: - SectionOrType: GRP_COMDAT -# YAML: - SectionOrType: .rodata +# RUN: yaml2obj %s -o %t1.o +# RUN: obj2yaml %t1.o | FileCheck %s -DSEC=.rodata + +# CHECK: - Name: .group +# CHECK-NEXT: Type: SHT_GROUP +# CHECK-NEXT: Link: .symtab +# CHECK-NEXT: EntSize: 0x4 +# CHECK-NEXT: Info: signature +# CHECK-NEXT: Members: +# CHECK-NEXT: - SectionOrType: GRP_COMDAT +# CHECK-NEXT: - SectionOrType: [[SEC]] +# CHECK-NEXT: - Name: --- !ELF FileHeader: @@ -35,10 +22,10 @@ - Name: .group Type: SHT_GROUP Link: .symtab - Info: signature + Info: [[INFO=signature]] Members: - SectionOrType: GRP_COMDAT - - SectionOrType: .rodata + - SectionOrType: [[SEC=.rodata]] - Name: .rodata Type: SHT_PROGBITS Symbols: @@ -46,24 +33,16 @@ Type: STT_OBJECT Section: .rodata +## Check we are able to dump members of the SHT_GROUP section even when +## one of them has section index 0. + +# RUN: yaml2obj -DSEC=0 %s -o %tnull.o +# RUN: obj2yaml %tnull.o | FileCheck %s -DSEC="''" + ## Check obj2yaml report an error when sh_info field of ## group section contains invalid (too large) signature symbol index. -# RUN: yaml2obj --docnum=2 %s -o %t2.o -# RUN: not obj2yaml %t2.o 2>&1 | FileCheck %s --check-prefix ERR - ---- !ELF -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_REL -Sections: - - Name: .group - Type: SHT_GROUP - Link: .symtab - Info: 0xFF - Members: - - SectionOrType: GRP_COMDAT -Symbols: [] +# RUN: yaml2obj -DINFO=0xFF %s -o %t2.o +# RUN: not obj2yaml %t2.o 2>&1 | FileCheck %s -DFILE=%t2.o --check-prefix=ERR -# ERR: Error reading file: {{.*}}2.o: unable to get symbol from section [index 2]: invalid symbol index (255) +# ERR: Error reading file: [[FILE]]: unable to get symbol from section [index 3]: invalid symbol index (255)