summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/ELFDumper.cpp
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2019-06-10 14:23:46 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2019-06-10 14:23:46 +0000
commitdd4f253c4d8f6debb91c04d3b3965b133169f0e2 (patch)
tree161c48f1138140444424ff17d90ff150475fdc77 /llvm/tools/llvm-readobj/ELFDumper.cpp
parent8cd8c5784b813d6e1b58c57d61a06ff5686d3473 (diff)
downloadbcm5719-llvm-dd4f253c4d8f6debb91c04d3b3965b133169f0e2.tar.gz
bcm5719-llvm-dd4f253c4d8f6debb91c04d3b3965b133169f0e2.zip
[llvm-readobj/llvm-readelf] - Don't fail to dump the object if .dynsym has broken sh_link field.
This is https://bugs.llvm.org/show_bug.cgi?id=42215. GNU readelf allows to dump the objects in that case, but llvm-readobj/llvm-readelf reports an error and stops. The patch fixes that. Differential revision: https://reviews.llvm.org/D63074 llvm-svn: 362938
Diffstat (limited to 'llvm/tools/llvm-readobj/ELFDumper.cpp')
-rw-r--r--llvm/tools/llvm-readobj/ELFDumper.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp
index f41adaeaed6..295763f8791 100644
--- a/llvm/tools/llvm-readobj/ELFDumper.cpp
+++ b/llvm/tools/llvm-readobj/ELFDumper.cpp
@@ -1423,7 +1423,11 @@ ELFDumper<ELFT>::ELFDumper(const object::ELFObjectFile<ELFT> *ObjF,
// This is only used (if Elf_Shdr present)for naming section in GNU
// style
DynSymtabName = unwrapOrError(Obj->getSectionName(&Sec));
- DynamicStringTable = unwrapOrError(Obj->getStringTableForSymtab(Sec));
+
+ if (Expected<StringRef> E = Obj->getStringTableForSymtab(Sec))
+ DynamicStringTable = *E;
+ else
+ warn(E.takeError());
}
break;
case ELF::SHT_SYMTAB_SHNDX:
OpenPOWER on IntegriCloud