special-symbol-indices.yaml 1.36 KB
# RUN: yaml2obj %s -o %t
# RUN: obj2yaml %t | FileCheck %s

## 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:   0x0000000000001234
# 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_HEXAGON_SCOMMON_1
# 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_HEXAGON
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:    SHN_HEXAGON_SCOMMON_1
    Binding:  STB_GLOBAL
  - Name:     unknown_index
    Index:    0xfffe
    Binding:  STB_GLOBAL