summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-readobj
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2019-07-16 11:07:30 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2019-07-16 11:07:30 +0000
commita1370877d7f4621a4243f0ae1c22dbbfd6483f35 (patch)
treebcbc53402c46f52eb5bfa278887ed64a0465e2e8 /llvm/test/tools/llvm-readobj
parenta5dc9c98352c396c0114403486fbd47e092d084a (diff)
downloadbcm5719-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.test26
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
OpenPOWER on IntegriCloud