mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
Recommit r370661 "[llvm-nm] - Add a test case for case when we dump a symbol that belongs to a section with a broken sh_name."
Fix: add a 'consumeError()' call to ObjectFile.cpp. This error was never checked. Original commit message: It adds a test case for a problem fixed by D66976 <https://reviews.llvm.org/D66976>. It was introduced by me in D66089 <https://reviews.llvm.org/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: 370669
This commit is contained in:
parent
6a053c6ace
commit
2e52b72fcb
@ -67,8 +67,10 @@ Error ObjectFile::printSymbolName(raw_ostream &OS, DataRefImpl Symb) const {
|
||||
uint32_t ObjectFile::getSymbolAlignment(DataRefImpl DRI) const { return 0; }
|
||||
|
||||
bool ObjectFile::isSectionBitcode(DataRefImpl Sec) const {
|
||||
if (Expected<StringRef> NameOrErr = getSectionName(Sec))
|
||||
Expected<StringRef> NameOrErr = getSectionName(Sec);
|
||||
if (NameOrErr)
|
||||
return *NameOrErr == ".llvmbc";
|
||||
consumeError(NameOrErr.takeError());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -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…
x
Reference in New Issue
Block a user