60 lines
1.5 KiB
Plaintext
60 lines
1.5 KiB
Plaintext
|
# 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
|