X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=tools%2Fllvm-readobj%2FMachODumper.cpp;h=8df6fd6457ffd729c8980445b3039ea43a218ecc;hb=9e639e8fd95488cb4c8ef2f7f3a41919acb29ac4;hp=54de49c310e304cb52db6e47db66b61997d162cc;hpb=fd7aa38e304a09fa0ef51b85b773b649b7e58c5e;p=oota-llvm.git diff --git a/tools/llvm-readobj/MachODumper.cpp b/tools/llvm-readobj/MachODumper.cpp index 54de49c310e..8df6fd6457f 100644 --- a/tools/llvm-readobj/MachODumper.cpp +++ b/tools/llvm-readobj/MachODumper.cpp @@ -341,11 +341,12 @@ void MachODumper::printRelocation(const MachOObjectFile *Obj, uint64_t Offset; SmallString<32> RelocName; StringRef SymbolName; - SymbolRef Symbol; if (error(RelI->getOffset(Offset))) return; if (error(RelI->getTypeName(RelocName))) return; - if (error(RelI->getSymbol(Symbol))) return; - if (error(Symbol.getName(SymbolName))) return; + symbol_iterator Symbol = RelI->getSymbol(); + if (Symbol != Obj->end_symbols() && + error(Symbol->getName(SymbolName))) + return; DataRefImpl DR = RelI->getRawDataRefImpl(); macho::RelocationEntry RE = Obj->getRelocation(DR); @@ -406,12 +407,11 @@ void MachODumper::printSymbol(symbol_iterator SymI) { MachOSymbol Symbol; getSymbol(Obj, SymI->getRawDataRefImpl(), Symbol); - StringRef SectionName; + StringRef SectionName = ""; section_iterator SecI(Obj->end_sections()); - if (error(SymI->getSection(SecI)) || - SecI == Obj->end_sections() || - error(SecI->getName(SectionName))) - SectionName = ""; + if (!error(SymI->getSection(SecI)) && + SecI != Obj->end_sections()) + error(SecI->getName(SectionName)); DictScope D(W, "Symbol"); W.printNumber("Name", SymbolName, Symbol.StringIndex);