## Check that llvm-objdump reports an error when
## .shstrtab has an invalid type.

# RUN: yaml2obj %s --docnum=1 -o %t1
# RUN: not llvm-objdump -s %t1 2>&1 | FileCheck %s -DFILE=%t1 --check-prefix=INVALID-SHTYPE

# INVALID-SHTYPE: error: '[[FILE]]': invalid sh_type for string table section [index 1]: expected SHT_STRTAB, but got SHT_PROGBITS

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name: .shstrtab
    Type: SHT_PROGBITS

## Check that llvm-objdump reports an error when
## .shstrtab has an invalid zero-size.

# RUN: yaml2obj %s --docnum=2 -o %t2
# RUN: not llvm-objdump -s %t2 2>&1 | FileCheck %s -DFILE=%t2 --check-prefix=STRTAB-EMPTY

# STRTAB-EMPTY: error: '[[FILE]]': SHT_STRTAB string table section [index 1] is empty

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name: .shstrtab
    Type: SHT_STRTAB
    Size: 0

## Check that llvm-objdump reports an error when .shstrtab has an invalid
## size that goes past the end of the file.

# RUN: not llvm-objdump -s %p/Inputs/invalid-strtab-size.elf 2>&1 \
# RUN:   | FileCheck %s -DFILE=%p/Inputs/invalid-strtab-size.elf --check-prefix=INVALID-STRTAB-SIZE

# INVALID-STRTAB-SIZE: error: '[[FILE]]': section [index 1] has a sh_offset (0x70) + sh_size (0x16777215) that cannot be represented

## Check that llvm-dwarfdump reports an error during relocation resolution
## when instead of expected SHT_RELA section it locates a section of a different type.

# RUN: yaml2obj %s --docnum=3 -o %t3
# RUN: not llvm-dwarfdump -debug-line %t3 2>&1 | FileCheck --check-prefix=RELA %s

# RELA: LLVM ERROR: Section is not SHT_RELA

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .debug_line
    Type: SHT_PROGBITS
## The exact content does not matter here. We can use any minimal valid debug section
## which is a target for relocation. The idea is to trigger the code that reads the
## relocation's addend during relocation resolution. It should fail if called on
## a non-SHT_RELA section.
    Content: 380000000200210000000101FB0E0D00010101010000000100000100676C6F62616C2E63707000000000000009020000000000000000130237000101
  - Name: .rela.debug_line
    Type: SHT_REL
    Info: .debug_line
    Relocations:
      - Offset: 0x000000000000002E
        Type:   R_X86_64_64

## Check that llvm-objdump reports an error when it tries to dump section names
## and .shstrtab is not null-terminated.

# RUN: yaml2obj %s --docnum=4 -o %t4
# RUN: not llvm-objdump -s %t4 2>&1 | FileCheck -DFILE=%t4 --check-prefix=SHSTRTAB-NON-TERM %s

# SHSTRTAB-NON-TERM: error: '[[FILE]]': SHT_STRTAB string table section [index 1] is non-null terminated

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name: .shstrtab
    Type: SHT_STRTAB
    Content: "11"

## Check that llvm-objdump reports an error when it tries to dump a symbol name and
## .strtab is not null-terminated.

# RUN: yaml2obj %s --docnum=5 -o %t5
# RUN: not llvm-objdump -syms %t5 2>&1 | FileCheck --check-prefix=NONULL %s

# NONULL: error: {{.*}}: SHT_STRTAB string table section [index 1] is non-null terminated

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name: .strtab
    Type: SHT_STRTAB
    Content: "11"
Symbols:
  - Name: foo

## Check that llvm-readobj reports an error if .symtab has an invalid sh_entsize.

# RUN: yaml2obj %s --docnum=6 -o %t6
# RUN: not llvm-readobj --symbols %t6 2>&1 | FileCheck -DFILE=%t6 --check-prefix=INVALID-SYM-SIZE %s

# INVALID-SYM-SIZE: error: '[[FILE]]': section [index 1] has an invalid sh_entsize: 32

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name: .symtab
    Type: SHT_SYMTAB
    EntSize: 32
Symbols:
  - Name: foo

## Check that llvm-readobj reports a warning if .dynsym has an invalid sh_entsize.

# RUN: yaml2obj %s --docnum=7 -o %t7
# RUN: llvm-readobj --dyn-symbols %t7 2>&1 | FileCheck -DFILE=%t7 --check-prefix=INVALID-DYNSYM-SIZE %s

# INVALID-DYNSYM-SIZE: warning: '[[FILE]]': invalid section size (48) or entity size (32)

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name: .dynsym
    Type: SHT_DYNSYM
    EntSize: 32
DynamicSymbols:
  - Name: foo

## Check that llvm-readobj reports an error if .symtab has an invalid sh_link value,
## which is greater than number of sections.

# RUN: yaml2obj %s --docnum=8 -o %t8
# RUN: not llvm-readobj --symbols %t8 2>&1 | FileCheck -DFILE=%t8 --check-prefix=INVALID-SYMTAB-LINK %s

# INVALID-SYMTAB-LINK: error: '[[FILE]]': invalid section index: 255

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .symtab
    Type: SHT_SYMTAB
    Link: 0xFF

## Check that llvm-readobj reports an error when trying to dump sections
## when the e_shentsize field is broken.

# RUN: yaml2obj %s --docnum=9 -o %t9
# RUN: not llvm-readobj -S %t9 2>&1 | FileCheck --check-prefix=INVALID-SH-ENTSIZE %s

# INVALID-SH-ENTSIZE: error: {{.*}}: invalid  e_shentsize in ELF header: 1

--- !ELF
FileHeader:
  Class:     ELFCLASS64
  Data:      ELFDATA2LSB
  Type:      ET_REL
  Machine:   EM_X86_64
  SHEntSize: 1

## Check that llvm-readobj reports an error if .symtab has sh_size
## that is not a multiple of sh_entsize.

# RUN: yaml2obj %s --docnum=10 -o %t10
# RUN: not llvm-readobj --symbols %t10 2>&1 | FileCheck -DFILE=%t10 --check-prefix=INVALID-SYMTAB-SIZE %s

# INVALID-SYMTAB-SIZE: error: '[[FILE]]': section [index 1] has an invalid sh_size (1) which is not a multiple of its sh_entsize (24)

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name: .symtab
    Type: SHT_SYMTAB
    Size: 1

## Test that llvm-readobj reports an error if SHT_SYMTAB_SHNDX section has
## invalid sh_size which should be:
## sizeof(.symtab_shndx) = (sizeof(.symtab) / entsize(.symtab)) * entsize(.symtab_shndx)

# RUN: yaml2obj %s --docnum=11 -o %t11
# RUN: not llvm-readobj --symbols %t11 2>&1 | FileCheck --check-prefix=INVALID-XINDEX-SIZE %s

# INVALID-XINDEX-SIZE: error: {{.*}}: SHT_SYMTAB_SHNDX section has sh_size (24) which is not equal to the number of symbols (2)

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name: .symtab_shndx
    Type: SHT_SYMTAB_SHNDX
    Entries: [ 0, 1 ]
    Link: .symtab

## Check that llvm-readobj reports an error if the e_phentsize field is broken.

# RUN: not llvm-readobj --program-headers %p/Inputs/invalid-e_shnum.elf 2>&1 | \
# RUN:  FileCheck -DFILE=%p/Inputs/invalid-e_shnum.elf --check-prefix=INVALID-PH-ENTSIZE %s

# INVALID-PH-ENTSIZE: error: '[[FILE]]': invalid e_phentsize: 12336

## Check that llvm-readobj reports an error when we have no SHT_SYMTAB_SHNDX section,
## but have a symbol referencing it.

# RUN: not llvm-readobj --symbols %p/Inputs/invalid-ext-symtab-index.elf-x86-64 2>&1 | \
# RUN:   FileCheck -DFILE=%p/Inputs/invalid-ext-symtab-index.elf-x86-64 --check-prefix=INVALID-EXT-SYMTAB-INDEX %s

# INVALID-EXT-SYMTAB-INDEX: error: '[[FILE]]': extended symbol index (0) is past the end of the SHT_SYMTAB_SHNDX section of size 0

## Check that llvm-readobj reports an error if a relocation section
## has a broken sh_offset (past the end of the file).

# RUN: yaml2obj %s --docnum=12 -o %t12
# RUN: yaml2obj %s --docnum=13 -o %t13
# RUN: not llvm-readobj -r %t12 2>&1 | FileCheck -DFILE=%t12 --check-prefix=INVALID-RELOC-SH-OFFSET %s
# RUN: not llvm-readobj -r %t13 2>&1 | FileCheck -DFILE=%t13 --check-prefix=INVALID-RELOC-SH-OFFSET %s

# INVALID-RELOC-SH-OFFSET: error: '[[FILE]]': section [index 1] has a sh_offset (0x10000) + sh_size (0x0) that cannot be represented

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_386
Sections:
  - Name:     .rel
    Type:     SHT_REL
    ShOffset: 0x10000

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name:     .rela
    Type:     SHT_RELA
    ShOffset: 0x10000

## Check that llvm-objdump reports an error when .shstrtab has a broken sh_offset
## so large that sh_offset + sh_size overflows the platform address size type.

# RUN: yaml2obj %s --docnum=14 -o %t14
# RUN: not llvm-readobj --symbols %t14 2>&1 | FileCheck -DFILE=%t14 --check-prefix=INVALID-SECTION-SIZE2 %s

# INVALID-SECTION-SIZE2: error: '[[FILE]]': section [index 1] has a sh_offset (0xffffffff) + sh_size (0x27) that cannot be represented

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_386
Sections:
  - Name:     .shstrtab
    Type:     SHT_STRTAB
    ShOffset: 0xFFFFFFFF

## Check that llvm-readobj reports an error when trying to dump sections
## when the e_shnum field is broken (is greater than the actual number of sections).

# RUN: yaml2obj %s --docnum=15 -o %t15
# RUN: not llvm-readobj -S %t15 2>&1 | FileCheck --check-prefix=INVALID-SECTION-NUM %s

# INVALID-SECTION-NUM: error: {{.*}}: section table goes past the end of file
 
--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
  SHNum:   0xFF

## Check that llvm-readobj reports an error if a relocation contains an
## incorrect (too large) symbol index.

# RUN: yaml2obj %s --docnum=16 -o %t16
# RUN: not llvm-readobj -r %t16 2>&1 | FileCheck -DFILE=%t16 --check-prefix=INVALID-REL-SYM %s

# INVALID-REL-SYM: error: '[[FILE]]': unable to access section [index 2] data at 0x18000040: offset goes past the end of file

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .rela.text
    Type: SHT_RELA
    Info: 0
    Relocations:
      - Offset: 0x0
        Type:   R_X86_64_64
        Symbol: 0xFFFFFF

## Check llvm-readobj does not crash on a truncated ELF.

## Create a truncated ELF object with ELFCLASSNONE class using echo.
## 0x7f, 'E', 'L', 'F', ELFCLASS64(2), ELFDATA2LSB(1),
## EV_CURRENT(1), ELFOSABI_LINUX(3), <padding zero bytes>, ET_REL(1), EM_NONE(0)
# RUN: echo -e -n "\x7f\x45\x4c\x46\x02\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00" > %t11
# RUN: not llvm-readobj -r %t11 2>&1 | FileCheck --check-prefix=INVALID-BUFFER %s

# INVALID-BUFFER: error: {{.*}}': invalid buffer: the size (18) is smaller than an ELF header (64)

# RUN: not llvm-readobj %p/Inputs/invalid-coff-header-too-small 2>&1 | FileCheck --check-prefix=COFF-HEADER %s
# COFF-HEADER: The file was not recognized as a valid object file

## Check that llvm-readobj reports an error if section name offset
## overflows the section name string table.

# RUN: yaml2obj %s --docnum=17 -o %t17
# RUN: not llvm-readobj --sections %t17 2>&1 | FileCheck -DFILE=%t17 --check-prefix=BROKEN-SECNAME %s

## BROKEN-SECNAME: error: '[[FILE]]': a section [index 1] has an invalid sh_name (0x1) offset which goes past the end of the section name string table

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .shstrtab
    Type: SHT_STRTAB
    Size: 1

## Check that llvm-readobj reports an error if a section has a broken offset
## that goes past the end of the file.

# RUN: yaml2obj %s --docnum=18 -o %t18
# RUN: not llvm-readobj --sections --section-data %t18 2>&1 \
# RUN:  | FileCheck -DFILE=%t18 --check-prefix=BROKEN-SECSHOFFSET %s

# BROKEN-SECSHOFFSET: error: '[[FILE]]': section [index 1] has a sh_offset (0xffff0000) + sh_size (0x0) that cannot be represented

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name:     .foo
    Type:     SHT_PROGBITS
    ShOffset: 0xFFFF0000

## Check that llvm-readobj reports an error if symbol name
## offset goes past the end of the symbol string table.

# RUN: yaml2obj %s --docnum=19 -o %t19
# RUN: not llvm-readobj --symbols %t19 2>&1 | FileCheck -DFILE=%t19 --check-prefix=INVALID-SYM-NAME %s

# INVALID-SYM-NAME: error: '[[FILE]]': st_name (0x1) is past the end of the string table of size 0x1

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .strtab
    Type: SHT_STRTAB
    Size: 1
Symbols:
  - Name: foo

## Version index in .gnu.version overflows the version map.
## Check llvm-readobj reports it.

# RUN: yaml2obj %s --docnum=20 -o %t20
# RUN: not llvm-readobj -dt %t20 2>&1 | FileCheck -DFILE=%t20 --check-prefix=INVALID-VERSION %s

# INVALID-VERSION: error: '[[FILE]]': Invalid version entry

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name:    .gnu.version
    Type:    SHT_GNU_versym
    Entries: [ 0xFF ]
DynamicSymbols:
  - Name: foo

## ELF header contains e_phentsize field with a value != sizeof(Elf_Phdr).
## Check llvm-readobj reports it.

# RUN: not llvm-readobj -l %p/Inputs/corrupt-invalid-phentsize.elf.x86-64 2>&1 \
# RUN:   | FileCheck -DFILE=%p/Inputs/corrupt-invalid-phentsize.elf.x86-64 --check-prefix=PHENTSIZE %s

# PHENTSIZE: error: '[[FILE]]': invalid e_phentsize: 57

## The dynamic table contains DT_STRTAB with a value that is not in any loadable segment.
## Check llvm-readobj reports it.

# RUN: yaml2obj %s --docnum=21 -o %t21
# RUN: llvm-readobj --dynamic-table %t21 2>&1 | FileCheck -DFILE=%t21 --check-prefix=INVALID-DTSTRTAB %s

# INVALID-DTSTRTAB: warning: '[[FILE]]': Unable to parse DT_STRTAB: virtual address is not in any segment: 0xffff0000

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
  Machine: EM_X86_64
Sections:
  - Name:    .dynamic
    Type:    SHT_DYNAMIC
    Address: 0x1000
    Entries:
      - Tag:   DT_STRTAB
        Value: 0xFFFF0000
      - Tag:   DT_NULL
        Value: 0x0
ProgramHeaders:
  - Type: PT_LOAD
    VAddr: 0x1000
    Sections:
      - Section: .dynamic

## Check that llvm-readobj reports a warning when a dynamic relocation section
## has sh_entsize field with size != sizeof(Elf_Rela).

# RUN: llvm-readobj --dyn-relocations \
# RUN:   %p/Inputs/corrupt-invalid-relocation-size.elf.x86-64 2>&1 \
# RUN:    | FileCheck -DFILE=%p/Inputs/corrupt-invalid-relocation-size.elf.x86-64 --check-prefix=RELOC-BROKEN-ENTSIZE %s

# RELOC-BROKEN-ENTSIZE: warning: '[[FILE]]': invalid section size (24) or entity size (25)

## Check that llvm-readobj reports a warning when .dynamic section has an invalid
## size, which isn't a multiple of the dynamic entry size. 

# RUN: yaml2obj %s --docnum=22 -o %t22
# RUN: llvm-readobj --dyn-relocations %t22 2>&1 | FileCheck -DFILE=%t22 --check-prefix=DYN-TABLE-SIZE %s

# DYN-TABLE-SIZE: warning: '[[FILE]]': invalid section size (1) or entity size (16)

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
  Machine: EM_X86_64
Sections:
  - Name:    .dynamic
    Type:    SHT_DYNAMIC
    Content: "00"

## PT_DYNAMIC's p_offset field is so large that p_offset + p_filesz is larger
## than the object size. Check llvm-readobj reports it.

# RUN: yaml2obj %s --docnum=23 -o %t23
# RUN: llvm-readobj --dyn-relocations %t23 2>&1 | FileCheck -DFILE=%t23 --check-prefix=DYN-TABLE-PHDR %s

# DYN-TABLE-PHDR: warning: '[[FILE]]': PT_DYNAMIC segment offset + size exceeds the size of the file

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
  Machine: EM_X86_64
Sections:
  - Name: .dynamic
    Type: SHT_DYNAMIC
    Entries:
      - Tag:   DT_NULL
        Value: 0
ProgramHeaders:
  - Type:   PT_DYNAMIC
    Offset: 0xffff0000
    Sections:
      - Section: .dynamic

## PT_DYNAMIC's p_filesz field is so large that p_offset + p_filesz is larger
## than the object size. Check llvm-readobj reports it.

# RUN: yaml2obj %s --docnum=24 -o %t24
# RUN: llvm-readobj --dyn-relocations %t24 2>&1 \
# RUN:  | FileCheck -DFILE=%t24 --check-prefix=DYN-TABLE-PHDR %s

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
  Machine: EM_X86_64
Sections:
  - Name: .dynamic
    Type: SHT_DYNAMIC
    Entries:
      - Tag:   DT_NULL
        Value: 0
ProgramHeaders:
  - Type:     PT_DYNAMIC
    FileSize: 0xffff0000
    Sections:
      - Section: .dynamic

# RUN: yaml2obj --docnum=25 %s -o %t25
# RUN: not obj2yaml 2>&1 %t25 | FileCheck %s -DFILE=%t25 --check-prefix=INVALID-SHSTRNDX

# INVALID-SHSTRNDX: Error reading file: [[FILE]]: section header string table index 255 does not exist

--- !ELF
FileHeader:
  Class:    ELFCLASS64
  Data:     ELFDATA2LSB
  Type:     ET_REL
  Machine:  EM_X86_64
  SHStrNdx: 0xFF
Sections:
  - Name: .foo
    Type: SHT_PROGBITS

## We report an error if the number of sections stored in sh_size
## is greater than UINT64_MAX / sizeof(Elf_Shdr) == 288230376151711743.
## Here we check that do not crash on a border value.

# RUN: yaml2obj --docnum=26 %s -o %t26
# RUN: not llvm-readobj -h %t26 2>&1 | FileCheck -DFILE=%t26 --check-prefix=INVALID-SEC-NUM1 %s

# INVALID-SEC-NUM1: error: '[[FILE]]': invalid section header table offset (e_shoff = 0x78) or invalid number of sections specified in the first section header's sh_size field (0x3ffffffffffffff)

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
  SHNum:   0x0
Sections:
  - Type: SHT_NULL
    Size: 288230376151711743

## See above, but now we test the UINT64_MAX / sizeof(Elf_Shdr) value.
## The error is slightly different in this case.

# RUN: yaml2obj --docnum=27 %s -o %t27
# RUN: not llvm-readobj -h %t27 2>&1 | FileCheck -DFILE=%t27 --check-prefix=INVALID-SEC-NUM2 %s

# INVALID-SEC-NUM2: error: '[[FILE]]': invalid number of sections specified in the NULL section's sh_size field (288230376151711744)

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
  SHNum:   0x0
Sections:
  - Type: SHT_NULL
    Size: 288230376151711744

## Check the case when SHOff is too large. SHOff + sizeof(Elf_Shdr) overflows the uint64 type.

# RUN: yaml2obj --docnum=28 %s -o %t28
# RUN: not llvm-readobj -h %t28 2>&1 | FileCheck -DFILE=%t28 --check-prefix=INVALID-SEC-NUM3 %s

# INVALID-SEC-NUM3: error: '[[FILE]]': section header table goes past the end of the file: e_shoff = 0xffffffffffffffff
 
--- !ELF
FileHeader:
  Class:    ELFCLASS64
  Data:     ELFDATA2LSB
  Type:     ET_REL
  Machine:  EM_X86_64
  SHOff:    0xffffffffffffffff

## Check that llvm-objdump reports an error when it tries to dump a
## symbol name and .strtab is empty.

# RUN: yaml2obj %s --docnum=29 -o %t29
# RUN: not llvm-objdump -syms %t29 2>&1 | FileCheck -DFILE=%t29 --check-prefix=STRTAB-EMPTY2 %s

# STRTAB-EMPTY2: error: '[[FILE]]': SHT_STRTAB string table section [index 1] is empty

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name: .strtab
    Type: SHT_STRTAB
    Content: ""
Symbols:
  - Name: foo

## Check that we report an error if SHT_GNU_versym has invalid
## sh_entsize value (3 instead of 2) when trying to access the entries.

# RUN: yaml2obj %s --docnum=30 -o %t30
# RUN: not llvm-readobj -V %t30 2>&1 | FileCheck -DFILE=%t30 --check-prefix=INVALID-VER-SHENTSIZE %s

# INVALID-VER-SHENTSIZE: error: '[[FILE]]': section [index 1] has invalid sh_entsize: expected 2, but got 3

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  OSABI:   ELFOSABI_FREEBSD
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name:    .gnu.version
    Type:    SHT_GNU_versym
    EntSize: 0x0000000000000003
    Entries: [ ]
## Needed to trigger creation of .dynsym.
DynamicSymbols:
  - Name:    foo
    Binding: STB_GLOBAL

## Check the case when e_shstrndx == SHN_XINDEX, but null section's sh_link contains
## the index of a section header string table that is larger than the number of the sections.

# RUN: yaml2obj --docnum=31 %s -o %t31
# RUN: not llvm-objcopy %t31 2>&1 | FileCheck %s -DFILE=%t31 --check-prefix=INVALID-SHSTRTAB-INDEX

# INVALID-SHSTRTAB-INDEX: error: section header string table index 255 does not exist

--- !ELF
FileHeader:
  Class:    ELFCLASS64
  Data:     ELFDATA2LSB
  Type:     ET_REL
  Machine:  EM_X86_64
## SHN_XINDEX == 0xffff.
  SHStrNdx: 0xffff
Sections:
  - Type: SHT_NULL
    Link: 0xff
