1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 21:13:02 +02:00
llvm-mirror/test/tools/llvm-readobj/broken-group.test
George Rimar cd7a7ea75d [llvm-readobj] - Teach tool to report error if some section is in multiple COMDAT groups at once.
readelf tool reports an error when output contains the same section
in multiple COMDAT groups. That can be useful.
Path teaches llvm-readobj to do the same.

Differential revision: https://reviews.llvm.org/D37567

llvm-svn: 313459
2017-09-16 14:29:51 +00:00

78 lines
2.6 KiB
Plaintext

# RUN: yaml2obj %s -o %t.o
# RUN: llvm-readobj --elf-section-groups -elf-output-style=GNU \
# RUN: %t.o >%tout.log 2>%terr.log
# RUN: FileCheck %s -check-prefix=GNU-STDERR < %terr.log
# GNU-STDERR: Error: section [ 3] in group section [ 4] already in group section [ 2]
# RUN: FileCheck %s -check-prefix=GNU-STDOUT < %tout.log
# GNU-STDOUT: COMDAT group section [ 2] `.group' [bar] contains 1 sections:
# GNU-STDOUT-NEXT: [Index] Name
# GNU-STDOUT-NEXT: [ 3] .foo
# GNU-STDOUT: COMDAT group section [ 4] `.group1' [zed] contains 1 sections:
# GNU-STDOUT-NEXT: [Index] Name
# RUN: llvm-readobj --elf-section-groups \
# RUN: %t.o >%t2out.log 2>%t2err.log %t.o
# RUN: FileCheck %s -check-prefix=LLVM-STDERR < %t2err.log
# LLVM-STDERR: Error: .foo (3) in a group .group1 (4) is already in a group .group (2)
# RUN: FileCheck %s -check-prefix=LLVM-STDOUT < %t2out.log
# LLVM-STDOUT: Groups {
# LLVM-STDOUT-NEXT: Group {
# LLVM-STDOUT-NEXT: Name: .group
# LLVM-STDOUT-NEXT: Index: 2
# LLVM-STDOUT-NEXT: Type: COMDAT
# LLVM-STDOUT-NEXT: Signature: bar
# LLVM-STDOUT-NEXT: Section(s) in group [
# LLVM-STDOUT-NEXT: .foo (3)
# LLVM-STDOUT-NEXT: ]
# LLVM-STDOUT-NEXT: }
# LLVM-STDOUT-NEXT: Group {
# LLVM-STDOUT-NEXT: Name: .group1
# LLVM-STDOUT-NEXT: Index: 4
# LLVM-STDOUT-NEXT: Type: COMDAT
# LLVM-STDOUT-NEXT: Signature: zed
# LLVM-STDOUT-NEXT: Section(s) in group [
# LLVM-STDOUT-NEXT: ]
# LLVM-STDOUT-NEXT: }
# LLVM-STDOUT-NEXT: }
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
AddressAlign: 0x0000000000000004
Content: ''
- Name: .group
Type: SHT_GROUP
Link: .symtab
AddressAlign: 0x0000000000000004
Info: bar
Members:
- SectionOrType: GRP_COMDAT
- SectionOrType: .foo
- Name: .foo
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ]
AddressAlign: 0x0000000000000001
Content: ''
- Name: .group1
Type: SHT_GROUP
Link: .symtab
AddressAlign: 0x0000000000000004
Info: zed
Members:
- SectionOrType: GRP_COMDAT
- SectionOrType: .foo
Symbols:
Local:
- Name: bar
Section: .group
- Name: zed
Section: .group1