diff options
| author | David Majnemer <david.majnemer@gmail.com> | 2014-11-13 07:42:11 +0000 |
|---|---|---|
| committer | David Majnemer <david.majnemer@gmail.com> | 2014-11-13 07:42:11 +0000 |
| commit | 1f80b0a8e0d8be11ec14c6395a1f6ea49ee7e791 (patch) | |
| tree | 7cc9258201573d772354200248eef78f817972a6 /llvm/tools | |
| parent | 2314b3defa325bab5b919e15ace61fecd6000a57 (diff) | |
| download | bcm5719-llvm-1f80b0a8e0d8be11ec14c6395a1f6ea49ee7e791.tar.gz bcm5719-llvm-1f80b0a8e0d8be11ec14c6395a1f6ea49ee7e791.zip | |
Object, COFF: getRelocationSymbol shouldn't assert
lib/Object is supposed to be robust to malformed object files. Don't
assert if we don't have a symbol table. I'll try to come up with a test
case later.
llvm-svn: 221870
Diffstat (limited to 'llvm/tools')
| -rw-r--r-- | llvm/tools/llvm-readobj/COFFDumper.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
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"; } } |

