diff options
| author | George Rimar <grimar@accesssoftek.com> | 2019-07-16 11:07:30 +0000 |
|---|---|---|
| committer | George Rimar <grimar@accesssoftek.com> | 2019-07-16 11:07:30 +0000 |
| commit | a1370877d7f4621a4243f0ae1c22dbbfd6483f35 (patch) | |
| tree | bcbc53402c46f52eb5bfa278887ed64a0465e2e8 /llvm/test/tools/llvm-readobj | |
| parent | a5dc9c98352c396c0114403486fbd47e092d084a (diff) | |
| download | bcm5719-llvm-a1370877d7f4621a4243f0ae1c22dbbfd6483f35.tar.gz bcm5719-llvm-a1370877d7f4621a4243f0ae1c22dbbfd6483f35.zip | |
[Object/llvm-readelf/llvm-readobj] - Improve error reporting when e_shstrndx is broken.
When e_shstrndx is broken, it is impossible to get a section name.
In this patch I improved the error message we show and
added tests for Object and for llvm-readelf/llvm-readobj
Message was changed in two places:
1) llvm-readelf/llvm-readobj previously used a code from Object/ELF.h,
now they have a modified version of it (it has less checks and allows
dumping broken things).
2) Code in Object/ELF.h is still used for generic cases.
Differential revision: https://reviews.llvm.org/D64714
llvm-svn: 366203
Diffstat (limited to 'llvm/test/tools/llvm-readobj')
| -rw-r--r-- | llvm/test/tools/llvm-readobj/elf-invalid-shstrndx.test | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/elf-invalid-shstrndx.test b/llvm/test/tools/llvm-readobj/elf-invalid-shstrndx.test new file mode 100644 index 00000000000..6dc3b11dfd2 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/elf-invalid-shstrndx.test @@ -0,0 +1,26 @@ +# RUN: yaml2obj %s -o %t +# RUN: not llvm-readelf --headers -S 2>&1 %t | FileCheck %s -DFILE=%t --check-prefix=GNU +# RUN: not llvm-readobj --headers -S 2>&1 %t | FileCheck %s -DFILE=%t --check-prefix=LLVM + +# GNU: ELF Header: +# GNU: Section header string table index: 255 +# GNU-NEXT: There are 4 section headers, starting at offset 0x40: +# GNU: Section Headers: +# GNU-NEXT: [Nr] Name +# GNU-EMPTY: +# GNU-NEXT: error: '[[FILE]]': section header string table index 255 does not exist + +# LLVM: ElfHeader { +# LLVM: StringTableSectionIndex: 255 +# LLVM-NEXT: } +# LLVM-NEXT: Sections [ +# LLVM-EMPTY: +# LLVM-NEXT: error: '[[FILE]]': section header string table index 255 does not exist + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 + SHStrNdx: 0xFF |

