## Show that llvm-readobj prints symbol shndxes correctly, for valid indexes,
## invalid indexes (i.e. section indexes that don't correspond to a real
## section), reserved values and processor/os-specific index values, for both GNU
## and LLVM styles.

# RUN: yaml2obj --docnum=1 %s -o %t1
# RUN: llvm-readobj --symbols %t1 | FileCheck %s --check-prefix=LLVM1
# RUN: llvm-readelf --symbols %t1 | FileCheck %s --check-prefix=GNU1

# LLVM1: Name:    undef
# LLVM1: Section:
# LLVM1-SAME:     Undefined (0x0)
# LLVM1: Name:    normal
# LLVM1: Section:
# LLVM1-SAME:     .text (0x1)
# LLVM1: Name:    common
# LLVM1: Section:
# LLVM1-SAME:     Common (0xFFF2)
# LLVM1: Name:    absolute
# LLVM1: Section:
# LLVM1-SAME:     Absolute (0xFFF1)
# LLVM1: Name:    proc
# LLVM1: Section:
# LLVM1-SAME:     Processor Specific (0xFF01)
# LLVM1: Name:    os
# LLVM1: Section:
# LLVM1-SAME:     Operating System Specific (0xFF21)
# LLVM1: Name:    reserved
# LLVM1: Section:
# LLVM1-SAME:     Reserved (0xFFFE)
# LLVM1: Name:    xindex
# LLVM1: Section:
# LLVM1:          .text (0x1)

# GNU1:      Symbol table '.symtab' contains 9 entries:
# GNU1-NEXT:   Num: {{.*}} Ndx Name
# GNU1-NEXT:     0: {{.*}} UND
# GNU1-NEXT:     1: {{.*}} UND undef
# GNU1-NEXT:     2: {{.*}}   1 normal
# GNU1-NEXT:     3: {{.*}} COM common
# GNU1-NEXT:     4: {{.*}} ABS absolute
# GNU1-NEXT:     5: {{.*}} PRC[0xff01] proc
# GNU1-NEXT:     6: {{.*}} OS[0xff21] os
# GNU1-NEXT:     7: {{.*}} RSV[0xfffe] reserved
# GNU1-NEXT:     8: {{.*}}   1 xindex

--- !ELF
FileHeader:
  Class: ELFCLASS32
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name: .text
    Type: SHT_PROGBITS
  - Name: .symtab_shndx
    Type: SHT_SYMTAB_SHNDX
    Link: .symtab
    Entries: [ 0, 0, 0, 0, 0, 0, 0, 0, 1 ]
Symbols:
  - Name:    [[NAME=undef]]
    Binding: STB_GLOBAL
    Type:    [[TYPE=STT_NOTYPE]]
  - Name:    [[NAME=normal]]
    Section: .text
    Binding: STB_GLOBAL
    Type:    [[TYPE=STT_NOTYPE]]
  - Name:    [[NAME=common]]
    Index:   SHN_COMMON
    Binding: STB_GLOBAL
    Type:    [[TYPE=STT_NOTYPE]]
  - Name:    [[NAME=absolute]]
    Index:   SHN_ABS
    Binding: STB_GLOBAL
    Type:    [[TYPE=STT_NOTYPE]]
  - Name:    [[NAME=proc]]
    Index:   0xff01
    Binding: STB_GLOBAL
    Type:    [[TYPE=STT_NOTYPE]]
  - Name:    [[NAME=os]]
    Index:   0xff21
    Binding: STB_GLOBAL
    Type:    [[TYPE=STT_NOTYPE]]
  - Name:    [[NAME=reserved]]
    Index:   0xfffe
    Binding: STB_GLOBAL
    Type:    [[TYPE=STT_NOTYPE]]
  - Name:    [[NAME=xindex]]
    Index:   SHN_XINDEX
    Binding: STB_GLOBAL
    Type:    [[TYPE=STT_NOTYPE]]

## Check the behavior for section symbols.
# RUN: yaml2obj --docnum=1 -DTYPE=STT_SECTION %s -o %t1-sec
# RUN: llvm-readobj --symbols %t1-sec | FileCheck %s --check-prefix=LLVM1
# RUN: llvm-readelf --symbols %t1-sec | FileCheck %s --check-prefix=GNU1

## Check the behavior for unnamed section symbols.
# RUN: yaml2obj --docnum=1 -DTYPE=STT_SECTION -DNAME="''" %s -o %t1-sec-unnamed
# RUN: llvm-readobj --symbols %t1-sec-unnamed 2>&1 | \
# RUN:   FileCheck %s -DFILE=%t1-sec-unnamed --check-prefix=LLVM1-SEC-SYMS
# RUN: llvm-readelf --symbols %t1-sec-unnamed 2>&1 | \
# RUN:   FileCheck %s -DFILE=%t1-sec-unnamed --check-prefix=GNU1-SEC-SYMS

# LLVM1-SEC-SYMS:      Symbols [
# LLVM1-SEC-SYMS-NEXT:   Symbol {
# LLVM1-SEC-SYMS-NEXT:     Name:  (0)
# LLVM1-SEC-SYMS:          Section: Undefined (0x0)
# LLVM1-SEC-SYMS: warning: '[[FILE]]': unable to get section index for symbol with st_shndx = 0x0 (SHN_UNDEF)
# LLVM1-SEC-SYMS-NEXT:   Symbol {
# LLVM1-SEC-SYMS-NEXT:     Name: <?> (0)
# LLVM1-SEC-SYMS:          Section: Undefined (0x0)
# LLVM1-SEC-SYMS:        Symbol {
# LLVM1-SEC-SYMS-NEXT:     Name: .text (0)
# LLVM1-SEC-SYMS:          Section: .text (0x1)
# LLVM1-SEC-SYMS: warning: '[[FILE]]': unable to get section index for symbol with st_shndx = 0xfff2 (SHN_COMMON)
# LLVM1-SEC-SYMS-NEXT:   Symbol {
# LLVM1-SEC-SYMS-NEXT:     Name: <?> (0)
# LLVM1-SEC-SYMS:          Section: Common (0xFFF2)
# LLVM1-SEC-SYMS: warning: '[[FILE]]': unable to get section index for symbol with st_shndx = 0xfff1 (SHN_ABS)
# LLVM1-SEC-SYMS-NEXT:   Symbol {
# LLVM1-SEC-SYMS-NEXT:     Name: <?> (0)
# LLVM1-SEC-SYMS:          Section: Absolute (0xFFF1)
# LLVM1-SEC-SYMS: warning: '[[FILE]]': unable to get section index for symbol with st_shndx = 0xff01 (SHN_LOPROC+0x1)
# LLVM1-SEC-SYMS-NEXT:   Symbol {
# LLVM1-SEC-SYMS-NEXT:     Name: <?> (0)
# LLVM1-SEC-SYMS:          Section: Processor Specific (0xFF01)
# LLVM1-SEC-SYMS: warning: '[[FILE]]': unable to get section index for symbol with st_shndx = 0xff21 (SHN_LOOS+0x1)
# LLVM1-SEC-SYMS-NEXT:   Symbol {
# LLVM1-SEC-SYMS-NEXT:     Name: <?> (0)
# LLVM1-SEC-SYMS:          Section: Operating System Specific (0xFF21)
# LLVM1-SEC-SYMS: warning: '[[FILE]]': unable to get section index for symbol with st_shndx = 0xfffe (SHN_LORESERVE+0xfe)
# LLVM1-SEC-SYMS-NEXT:   Symbol {
# LLVM1-SEC-SYMS-NEXT:     Name: <?> (0)
# LLVM1-SEC-SYMS:          Section: Reserved (0xFFFE)
# LLVM1-SEC-SYMS:        Symbol {
# LLVM1-SEC-SYMS-NEXT:     Name: .text (0)
# LLVM1-SEC-SYMS:          Section: .text (0x1)

# GNU1-SEC-SYMS:      Num: {{.*}} Ndx Name
# GNU1-SEC-SYMS-NEXT:   0: {{.*}} UND {{$}}
# GNU1-SEC-SYMS-NEXT: warning: '[[FILE]]': unable to get section index for symbol with st_shndx = 0x0 (SHN_UNDEF)
# GNU1-SEC-SYMS-NEXT:   1: {{.*}} UND <?>
# GNU1-SEC-SYMS-NEXT:   2: {{.*}}   1 .text
# GNU1-SEC-SYMS-NEXT: warning: '[[FILE]]': unable to get section index for symbol with st_shndx = 0xfff2 (SHN_COMMON)
# GNU1-SEC-SYMS-NEXT:   3: {{.*}} COM <?>
# GNU1-SEC-SYMS-NEXT: warning: '[[FILE]]': unable to get section index for symbol with st_shndx = 0xfff1 (SHN_ABS)
# GNU1-SEC-SYMS-NEXT:   4: {{.*}} ABS <?>
# GNU1-SEC-SYMS-NEXT: warning: '[[FILE]]': unable to get section index for symbol with st_shndx = 0xff01 (SHN_LOPROC+0x1)
# GNU1-SEC-SYMS-NEXT:   5: {{.*}} PRC[0xff01] <?>
# GNU1-SEC-SYMS-NEXT: warning: '[[FILE]]': unable to get section index for symbol with st_shndx = 0xff21 (SHN_LOOS+0x1)
# GNU1-SEC-SYMS-NEXT:   6: {{.*}} OS[0xff21] <?>
# GNU1-SEC-SYMS-NEXT: warning: '[[FILE]]': unable to get section index for symbol with st_shndx = 0xfffe (SHN_LORESERVE+0xfe)
# GNU1-SEC-SYMS-NEXT:   7: {{.*}} RSV[0xfffe] <?>
# GNU1-SEC-SYMS-NEXT:   8: {{.*}}   1 .text

## In this case, the index does not correspond to a real section. Check that GNU
## style just prints the section index as normal and LLVM style prints a warning
## (but only once for each warning).
# RUN: yaml2obj --docnum=2 %s -o %t2
# RUN: llvm-readobj --symbols %t2 2> %t2.llvm.err | FileCheck %s --check-prefix=LLVM2
# RUN: FileCheck %s --input-file=%t2.llvm.err --check-prefix=BAD-SHNDX --implicit-check-not=warning
# RUN: llvm-readelf --symbols %t2 2> %t2.gnu.err | FileCheck %s --check-prefix=GNU2
# RUN: FileCheck %s --input-file=%t2.gnu.err --allow-empty --implicit-check-not={{.}}

# LLVM2: Name: bad
# LLVM2: Section:
# LLVM2-SAME:     <?> (0x42)
# LLVM2: Name: bad2
# LLVM2: Section:
# LLVM2-SAME:     <?> (0x42)
# LLVM2: Name: bad3
# LLVM2: Section:
# LLVM2-SAME:     <?> (0x43)
# LLVM2: Name: invalid_shndx
# LLVM2: Section:
# LLVM2-SAME:     <?> (0x9)
# LLVM2: Name: invalid_shndx2
# LLVM2: Section:
# LLVM2-SAME:     <?> (0x9)
# LLVM2: Name: invalid_shndx3
# LLVM2: Section:
# LLVM2-SAME:     <?> (0xA)

# GNU2:      Symbol table '.symtab' contains 7 entries:
# GNU2-NEXT:   Num: {{.*}} Ndx Name
# GNU2-NEXT:     0: {{.*}} UND
# GNU2-NEXT:     1: {{.*}}  66 bad
# GNU2-NEXT:     2: {{.*}}  66 bad2
# GNU2-NEXT:     3: {{.*}}  67 bad3
# GNU2-NEXT:     4: {{.*}}   9 invalid_shndx
# GNU2-NEXT:     5: {{.*}}   9 invalid_shndx2
# GNU2-NEXT:     6: {{.*}}  10 invalid_shndx3

# BAD-SHNDX: warning: '{{.*}}tmp2': invalid section index: 66
# BAD-SHNDX: warning: '{{.*}}tmp2': invalid section index: 67
# BAD-SHNDX: warning: '{{.*}}tmp2': invalid section index: 9
# BAD-SHNDX: warning: '{{.*}}tmp2': invalid section index: 10

--- !ELF
FileHeader:
  Class: ELFCLASS32
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name: .symtab_shndx
    Type: SHT_SYMTAB_SHNDX
    Link: .symtab
    Entries: [ 0, 0, 0, 0, 9, 9, 10 ]
Symbols:
  - Name:    bad
    Index:   0x42
  - Name:    bad2
    Index:   0x42
  - Name:    bad3
    Index:   0x43
  - Name:    invalid_shndx
    Index:   SHN_XINDEX
  - Name:    invalid_shndx2
    Index:   SHN_XINDEX
  - Name:    invalid_shndx3
    Index:   SHN_XINDEX

## In this case, the symtab shndx section is missing, so symbols with section
## indexes of SHN_XINDEX print as Reserved symbols.
# RUN: yaml2obj --docnum=3 %s -o %t3
# RUN: llvm-readobj --symbols %t3 2> %t3.llvm.err | FileCheck %s --check-prefix=LLVM3
# RUN: FileCheck %s --input-file=%t3.llvm.err --check-prefix=NO-SYMTAB-SHNDX --implicit-check-not=warning
# RUN: llvm-readelf --symbols %t3 2> %t3.gnu.err | FileCheck %s --check-prefix=GNU3
# RUN: FileCheck %s --input-file=%t3.gnu.err --check-prefix=NO-SYMTAB-SHNDX --implicit-check-not=warning

# LLVM3: Name: no_shndx
# LLVM3: Section:
# LLVM3-SAME:     Reserved (0xFFFF)
# LLVM3: Name: no_shndx2
# LLVM3: Section:
# LLVM3-SAME:     Reserved (0xFFFF)

# GNU3:      Symbol table '.symtab' contains 3 entries:
# GNU3-NEXT:   Num: {{.*}} Ndx Name
# GNU3-NEXT:     0: {{.*}} UND
# GNU3-NEXT:     1: {{.*}} RSV[0xffff] no_shndx
# GNU3-NEXT:     2: {{.*}} RSV[0xffff] no_shndx2

# NO-SYMTAB-SHNDX: warning: '{{.*}}tmp3': found an extended symbol index (1), but unable to locate the extended symbol index table
# NO-SYMTAB-SHNDX: warning: '{{.*}}tmp3': found an extended symbol index (2), but unable to locate the extended symbol index table

--- !ELF
FileHeader:
  Class: ELFCLASS32
  Data:  ELFDATA2LSB
  Type:  ET_REL
Symbols:
  - Name:  no_shndx
    Index: SHN_XINDEX
  - Name:  no_shndx2
    Index: SHN_XINDEX

## Check we can dump symbols even when the number of entries in the
## SHT_SYMTAB_SHNDX section doesn't match the number of symbols in the symbol table.

# RUN: yaml2obj --docnum=4 %s -o %t4
# RUN: llvm-readelf --symbols %t4 2>&1 | FileCheck %s -DFILE=%t4 --check-prefix=SHNDX-ERR-GNU
# RUN: llvm-readobj --symbols %t4 2>&1 | FileCheck %s -DFILE=%t4 --check-prefix=SHNDX-ERR-LLVM

#       SHNDX-ERR-GNU: warning: '[[FILE]]': SHT_SYMTAB_SHNDX has 3 entries, but the symbol table associated has 2
# SHNDX-ERR-GNU-EMPTY:
#  SHNDX-ERR-GNU-NEXT: Symbol table '.symtab' contains 2 entries:
#  SHNDX-ERR-GNU-NEXT:    Num:    Value          Size Type    Bind   Vis       Ndx Name
#  SHNDX-ERR-GNU-NEXT:      0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT   UND
#  SHNDX-ERR-GNU-NEXT: warning: '[[FILE]]': found an extended symbol index (1), but unable to locate the extended symbol index table
#  SHNDX-ERR-GNU-NEXT:      1: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT   RSV[0xffff]
# SHNDX-ERR-GNU-EMPTY:
#   SHNDX-ERR-GNU-NOT:{{.}}

# SHNDX-ERR-LLVM: warning: '[[FILE]]': SHT_SYMTAB_SHNDX has 3 entries, but the symbol table associated has 2
# SHNDX-ERR-LLVM:      Format: elf64-unknown
# SHNDX-ERR-LLVM-NEXT: Arch: unknown
# SHNDX-ERR-LLVM-NEXT: AddressSize: 64bit
# SHNDX-ERR-LLVM-NEXT: LoadName: <Not found>
# SHNDX-ERR-LLVM-NEXT: Symbols [
# SHNDX-ERR-LLVM-NEXT:   Symbol {
# SHNDX-ERR-LLVM-NEXT:     Name:  (0)
# SHNDX-ERR-LLVM-NEXT:     Value: 0x0
# SHNDX-ERR-LLVM-NEXT:     Size: 0
# SHNDX-ERR-LLVM-NEXT:     Binding: Local (0x0)
# SHNDX-ERR-LLVM-NEXT:     Type: None (0x0)
# SHNDX-ERR-LLVM-NEXT:     Other: 0
# SHNDX-ERR-LLVM-NEXT:     Section: Undefined (0x0)
# SHNDX-ERR-LLVM-NEXT:   }
# SHNDX-ERR-LLVM-NEXT:   Symbol {
# SHNDX-ERR-LLVM-NEXT:     Name:  (0)
# SHNDX-ERR-LLVM-NEXT:     Value: 0x0
# SHNDX-ERR-LLVM-NEXT:     Size: 0
# SHNDX-ERR-LLVM-NEXT:     Binding: Local (0x0)
# SHNDX-ERR-LLVM-NEXT:     Type: None (0x0)
# SHNDX-ERR-LLVM-NEXT:     Other: 0
# SHNDX-ERR-LLVM-NEXT: warning: '[[FILE]]': found an extended symbol index (1), but unable to locate the extended symbol index table
# SHNDX-ERR-LLVM-NEXT:     Section: Reserved (0xFFFF)
# SHNDX-ERR-LLVM-NEXT:   }
# SHNDX-ERR-LLVM-NEXT: ]

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name:    .symtab_shndx
    Type:    SHT_SYMTAB_SHNDX
    Entries: [ 0, 1, 2 ]
    Link:    .symtab
Symbols:
  - Index: SHN_XINDEX
