| # RUN: yaml2obj %s > %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: 0x0000FFFE |
| # 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 |
| |
| ## shn_xindex.o contains a symbol with st_shndx == SHN_XINDEX. |
| ## We do not support it at this moment. |
| # RUN: not obj2yaml %S/Inputs/shn_xindex.o 2>&1 | FileCheck %s --check-prefix=ERR |
| # ERR: Error reading file: {{.*}}shn_xindex.o: Feature not yet implemented. |