llvm/llvm/test/tools/obj2yaml/ELF/special-symbol-indices.yaml

# RUN: yaml2obj %s -o %t -DMACHINE=HEXAGON
# RUN: obj2yaml %t | FileCheck %s -DMACHINE=HEXAGON -DNAME=SCOMMON_1
# RUN: yaml2obj %s -o %t -DMACHINE=MIPS
# RUN: obj2yaml %t | FileCheck %s -DMACHINE=MIPS -DNAME=TEXT

## Test checks that we are able to handle symbols with special/reserved indices.

# CHECK:      Symbols:
# CHECK-NEXT:   - Name:    absolute
# CHECK-NEXT:     Index:   SHN_ABS
# CHECK-NEXT:     Binding: STB_GLOBAL
# CHECK-NEXT:     Value:   0x1234
# CHECK-NEXT:   - Name:    common
# CHECK-NEXT:     Index:   SHN_COMMON
# CHECK-NEXT:     Binding: STB_GLOBAL
# CHECK-NEXT:   - Name:    valid_index
# CHECK-NEXT:     Section: .text
# CHECK-NEXT:     Binding: STB_GLOBAL
# CHECK-NEXT:   - Name:    processor_specific_index
# CHECK-NEXT:     Index:   SHN_[[MACHINE]]_[[NAME]]
# CHECK-NEXT:     Binding: STB_GLOBAL
# CHECK-NEXT:   - Name:    unknown_index
# CHECK-NEXT:     Index:   0xFFFE
# CHECK-NEXT:     Binding: STB_GLOBAL

!ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_EXEC
  Machine:         EM_[[MACHINE]]
Sections:
  - Name: .text
    Type: SHT_PROGBITS
Symbols:
  - Name:     absolute
    Index:    SHN_ABS
    Value:    0x1234
    Binding:  STB_GLOBAL
  - Name:     common
    Index:    SHN_COMMON
    Binding:  STB_GLOBAL
  - Name:     valid_index
    Index:    0x1
    Binding:  STB_GLOBAL
  - Name:     processor_specific_index
    Index:    0xff01
    Binding:  STB_GLOBAL
  - Name:     unknown_index
    Index:    0xfffe
    Binding:  STB_GLOBAL