diff options
-rw-r--r-- | llvm/lib/Object/COFFObjectFile.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/llvm-readobj/COFFDumper.cpp | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp index 8d8711c7837..8312fed734c 100644 --- a/llvm/lib/Object/COFFObjectFile.cpp +++ b/llvm/lib/Object/COFFObjectFile.cpp @@ -996,7 +996,7 @@ symbol_iterator COFFObjectFile::getRelocationSymbol(DataRefImpl Rel) const { else if (SymbolTable32) Ref.p = reinterpret_cast<uintptr_t>(SymbolTable32 + R->SymbolTableIndex); else - llvm_unreachable("no symbol table pointer!"); + return symbol_end(); return symbol_iterator(SymbolRef(Ref, this)); } diff --git a/llvm/tools/llvm-readobj/COFFDumper.cpp b/llvm/tools/llvm-readobj/COFFDumper.cpp index 7c12f068a82..bb4315835c2 100644 --- a/llvm/tools/llvm-readobj/COFFDumper.cpp +++ b/llvm/tools/llvm-readobj/COFFDumper.cpp @@ -800,7 +800,7 @@ void COFFDumper::printRelocation(const SectionRef &Section, if (error(Reloc.getTypeName(RelocName))) return; symbol_iterator Symbol = Reloc.getSymbol(); - if (error(Symbol->getName(SymbolName))) + if (Symbol != Obj->symbol_end() && error(Symbol->getName(SymbolName))) return; if (error(Section.getContents(Contents))) return; @@ -809,12 +809,12 @@ void COFFDumper::printRelocation(const SectionRef &Section, DictScope Group(W, "Relocation"); W.printHex("Offset", Offset); W.printNumber("Type", RelocName, RelocType); - W.printString("Symbol", SymbolName.size() > 0 ? SymbolName : "-"); + W.printString("Symbol", SymbolName.empty() ? "-" : SymbolName); } else { raw_ostream& OS = W.startLine(); OS << W.hex(Offset) << " " << RelocName - << " " << (SymbolName.size() > 0 ? SymbolName : "-") + << " " << (SymbolName.empty() ? "-" : SymbolName) << "\n"; } } |