forked from OSchip/llvm-project
[llvm-nm] - Add a test case for case when we dump a symbol that belongs to a section with a broken sh_name.
It adds a test case for a problem fixed by D66976. It was introduced by me in D66089. The error reported was never consumed because of a wrong variable name used, so it could fail when LLVM_ENABLE_ABI_BREAKING_CHECKS is used. Differential revision: https://reviews.llvm.org/D67002 llvm-svn: 370661
This commit is contained in:
parent
9c68eddbbe
commit
4b9233cafb
|
@ -1,7 +1,7 @@
|
|||
# RUN: yaml2obj %s > %t.o
|
||||
# RUN: llvm-nm %t.o --format=sysv | FileCheck %s
|
||||
# RUN: yaml2obj --docnum=1 %s > %t1.o
|
||||
# RUN: llvm-nm %t1.o --format=sysv | FileCheck %s
|
||||
|
||||
!ELF
|
||||
--- !ELF
|
||||
FileHeader:
|
||||
Class: ELFCLASS64
|
||||
Data: ELFDATA2LSB
|
||||
|
@ -33,3 +33,27 @@ Symbols:
|
|||
# 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 > %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
|
||||
|
|
Loading…
Reference in New Issue