| # RUN: yaml2obj --docnum=1 %s -o %t1.o |
| # RUN: llvm-nm %t1.o --format=sysv | FileCheck %s |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |
| Symbols: |
| - Name: symbol_undefined |
| - Name: symbol |
| Section: .text |
| - Name: symbol_common |
| Index: SHN_COMMON |
| - Name: symbol_absolute |
| Index: SHN_ABS |
| - Name: proc |
| Index: 0xff01 |
| - Name: os |
| Index: 0xff21 |
| - Name: reserved |
| Index: 0xfffe |
| |
| # CHECK: os {{.*}}| |
| # CHECK-NEXT: proc {{.*}}| |
| # CHECK-NEXT: reserved {{.*}}| |
| # CHECK-NEXT: symbol {{.*}}| |.text |
| # CHECK-NEXT: symbol_absolute {{.*}}| |*ABS* |
| # CHECK-NEXT: symbol_common {{.*}}| |*COM* |
| # CHECK-NEXT: symbol_undefined {{.*}}| |*UND* |
| |
| ## Here we have a symbol that belongs to a section with a broken name |
| ## (sh_name offset goes past the end of the sections name string table). |
| ## We test that we can still print a reasonable output and don't crash/assert. |
| |
| # RUN: yaml2obj --docnum=2 %s -o %t2.o |
| # RUN: llvm-nm %t2.o --format=sysv | FileCheck %s --check-prefix=ERR |
| |
| # ERR: foo |0000000000000000| ? | NOTYPE|0000000000000000| | |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .broken |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |
| ShName: 0xffff |
| Symbols: |
| - Name: foo |
| Section: .broken |