diff options
| -rw-r--r-- | llvm/include/llvm/Object/ELFObjectFile.h | 2 | ||||
| -rw-r--r-- | llvm/test/Object/nm-shared-object.test | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/llvm/include/llvm/Object/ELFObjectFile.h b/llvm/include/llvm/Object/ELFObjectFile.h index 64b1921143c..9e95f2958aa 100644 --- a/llvm/include/llvm/Object/ELFObjectFile.h +++ b/llvm/include/llvm/Object/ELFObjectFile.h @@ -895,6 +895,8 @@ elf_symbol_iterator ELFObjectFile<ELFT>::dynamic_symbol_begin() const { template <class ELFT> elf_symbol_iterator ELFObjectFile<ELFT>::dynamic_symbol_end() const { const Elf_Shdr *SymTab = DotDynSymSec; + if (!SymTab) + return dynamic_symbol_begin(); DataRefImpl Sym = toDRI(SymTab, SymTab->sh_size / sizeof(Elf_Sym)); return basic_symbol_iterator(SymbolRef(Sym, this)); } diff --git a/llvm/test/Object/nm-shared-object.test b/llvm/test/Object/nm-shared-object.test index 32ae6a86152..975cf760ba9 100644 --- a/llvm/test/Object/nm-shared-object.test +++ b/llvm/test/Object/nm-shared-object.test @@ -29,3 +29,5 @@ RUN: not llvm-nm -D %p/Inputs/trivial-object-test.coff-i386 2>&1 \ RUN: | FileCheck %s -check-prefix ERROR ERROR: File format has no dynamic symbol table. + +RUN: llvm-nm -D %p/Inputs/trivial-object-test.elf-i386 | count 0 |

