Thanks, I was going to ask for (or do) this after you introduced reportError()<br><br><div>  Filipe<div><br>On Sunday, July 19, 2015, Rafael Espindola <<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: rafael<br>
Date: Sun Jul 19 22:23:55 2015<br>
New Revision: 242656<br>
<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D242656-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=qL0oug27bIz0-rtdsxbJM1BNjrTBO_DDwfeIEHBTQQc&s=vUpmuSLjgULhq9BAYTnIQH0KeOywflm9DZ3CL7WQVsU&e=" target="_blank">http://llvm.org/viewvc/llvm-project?rev=242656&view=rev</a><br>
Log:<br>
llvm-readobj: call exit(1) on error.<br>
<br>
llvm-readobj exists for testing llvm. We can safely stop the program<br>
the first time we know the input in corrupted.<br>
<br>
This is in preparation for making it handle a few more broken files.<br>
<br>
Modified:<br>
    llvm/trunk/test/Object/corrupt.test<br>
    llvm/trunk/tools/llvm-readobj/COFFDumper.cpp<br>
    llvm/trunk/tools/llvm-readobj/ELFDumper.cpp<br>
    llvm/trunk/tools/llvm-readobj/MachODumper.cpp<br>
    llvm/trunk/tools/llvm-readobj/Win64EHDumper.cpp<br>
    llvm/trunk/tools/llvm-readobj/llvm-readobj.cpp<br>
    llvm/trunk/tools/llvm-readobj/llvm-readobj.h<br>
<br>
Modified: llvm/trunk/test/Object/corrupt.test<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_test_Object_corrupt.test-3Frev-3D242656-26r1-3D242655-26r2-3D242656-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=qL0oug27bIz0-rtdsxbJM1BNjrTBO_DDwfeIEHBTQQc&s=s3ivdKvHMAr83LNTysPDNa0hJP_T2CcYE8eevG6SiR4&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Object/corrupt.test?rev=242656&r1=242655&r2=242656&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/Object/corrupt.test (original)<br>
+++ llvm/trunk/test/Object/corrupt.test Sun Jul 19 22:23:55 2015<br>
@@ -17,7 +17,6 @@ RUN:     2>&1 | FileCheck --check-prefix<br>
 SECNAME: Error reading file: Invalid data was encountered while parsing the file.<br>
<br>
 SECDATA: Error reading file: Invalid data was encountered while parsing the file.<br>
-SECDATA: Error reading file: Invalid data was encountered while parsing the file.<br>
<br>
 SYMNAME: Error reading file: Invalid data was encountered while parsing the file.<br>
<br>
<br>
Modified: llvm/trunk/tools/llvm-readobj/COFFDumper.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_tools_llvm-2Dreadobj_COFFDumper.cpp-3Frev-3D242656-26r1-3D242655-26r2-3D242656-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=qL0oug27bIz0-rtdsxbJM1BNjrTBO_DDwfeIEHBTQQc&s=zvluoNMmQcUdcQD25myJBKLPK2eGr4sKE2uWohk1k4o&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-readobj/COFFDumper.cpp?rev=242656&r1=242655&r2=242656&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/llvm-readobj/COFFDumper.cpp (original)<br>
+++ llvm/trunk/tools/llvm-readobj/COFFDumper.cpp Sun Jul 19 22:23:55 2015<br>
@@ -385,14 +385,12 @@ void COFFDumper::printFileHeaders() {<br>
   // Print PE header. This header does not exist if this is an object file and<br>
   // not an executable.<br>
   const pe32_header *PEHeader = nullptr;<br>
-  if (error(Obj->getPE32Header(PEHeader)))<br>
-    return;<br>
+  error(Obj->getPE32Header(PEHeader));<br>
   if (PEHeader)<br>
     printPEHeader<pe32_header>(PEHeader);<br>
<br>
   const pe32plus_header *PEPlusHeader = nullptr;<br>
-  if (error(Obj->getPE32PlusHeader(PEPlusHeader)))<br>
-    return;<br>
+  error(Obj->getPE32PlusHeader(PEPlusHeader));<br>
   if (PEPlusHeader)<br>
     printPEHeader<pe32plus_header>(PEPlusHeader);<br>
<br>
@@ -477,8 +475,7 @@ void COFFDumper::printBaseOfDataField(co<br>
<br>
 void COFFDumper::printCodeViewDebugInfo(const SectionRef &Section) {<br>
   StringRef Data;<br>
-  if (error(Section.getContents(Data)))<br>
-    return;<br>
+  error(Section.getContents(Data));<br>
<br>
   SmallVector<StringRef, 10> FunctionNames;<br>
   StringMap<StringRef> FunctionLineTables;<br>
@@ -534,9 +531,8 @@ void COFFDumper::printCodeViewDebugInfo(<br>
         }<br>
<br>
         StringRef FunctionName;<br>
-        if (error(resolveSymbolName(Obj->getCOFFSection(Section), Offset,<br>
-                                    FunctionName)))<br>
-          return;<br>
+        error(resolveSymbolName(Obj->getCOFFSection(Section), Offset,<br>
+                                FunctionName));<br>
         W.printString("FunctionName", FunctionName);<br>
         if (FunctionLineTables.count(FunctionName) != 0) {<br>
           // Saw debug info for this function already?<br>
@@ -695,9 +691,8 @@ void COFFDumper::printCodeViewSymbolsSub<br>
       uint32_t CodeSize = DE.getU32(&Offset);<br>
       DE.getU8(&Offset, Unused, 12);<br>
       StringRef SectionName;<br>
-      if (error(resolveSymbolName(Obj->getCOFFSection(Section),<br>
-                                  OffsetInSection + Offset, SectionName)))<br>
-        return;<br>
+      error(resolveSymbolName(Obj->getCOFFSection(Section),<br>
+                              OffsetInSection + Offset, SectionName));<br>
       Offset += 4;<br>
       DE.getU8(&Offset, Unused, 3);<br>
       StringRef DisplayName = DE.getCStr(&Offset);<br>
@@ -748,8 +743,7 @@ void COFFDumper::printSections() {<br>
     const coff_section *Section = Obj->getCOFFSection(Sec);<br>
<br>
     StringRef Name;<br>
-    if (error(Sec.getName(Name)))<br>
-      Name = "";<br>
+    error(Sec.getName(Name));<br>
<br>
     DictScope D(W, "Section");<br>
     W.printNumber("Number", SectionNumber);<br>
@@ -788,8 +782,7 @@ void COFFDumper::printSections() {<br>
     if (opts::SectionData &&<br>
         !(Section->Characteristics & COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA)) {<br>
       StringRef Data;<br>
-      if (error(Sec.getContents(Data)))<br>
-        break;<br>
+      error(Sec.getContents(Data));<br>
<br>
       W.printBinaryBlock("SectionData", Data);<br>
     }<br>
@@ -803,8 +796,7 @@ void COFFDumper::printRelocations() {<br>
   for (const SectionRef &Section : Obj->sections()) {<br>
     ++SectionNumber;<br>
     StringRef Name;<br>
-    if (error(Section.getName(Name)))<br>
-      continue;<br>
+    error(Section.getName(Name));<br>
<br>
     bool PrintedGroup = false;<br>
     for (const RelocationRef &Reloc : Section.relocations()) {<br>
@@ -834,8 +826,7 @@ void COFFDumper::printRelocation(const S<br>
   symbol_iterator Symbol = Reloc.getSymbol();<br>
   if (Symbol != Obj->symbol_end()) {<br>
     ErrorOr<StringRef> SymbolNameOrErr = Symbol->getName();<br>
-    if (error(SymbolNameOrErr.getError()))<br>
-      return;<br>
+    error(SymbolNameOrErr.getError());<br>
     SymbolName = *SymbolNameOrErr;<br>
   }<br>
<br>
@@ -914,8 +905,7 @@ void COFFDumper::printSymbol(const Symbo<br>
   for (uint8_t I = 0; I < Symbol.getNumberOfAuxSymbols(); ++I) {<br>
     if (Symbol.isFunctionDefinition()) {<br>
       const coff_aux_function_definition *Aux;<br>
-      if (error(getSymbolAuxData(Obj, Symbol, I, Aux)))<br>
-        break;<br>
+      error(getSymbolAuxData(Obj, Symbol, I, Aux));<br>
<br>
       DictScope AS(W, "AuxFunctionDef");<br>
       W.printNumber("TagIndex", Aux->TagIndex);<br>
@@ -925,8 +915,7 @@ void COFFDumper::printSymbol(const Symbo<br>
<br>
     } else if (Symbol.isAnyUndefined()) {<br>
       const coff_aux_weak_external *Aux;<br>
-      if (error(getSymbolAuxData(Obj, Symbol, I, Aux)))<br>
-        break;<br>
+      error(getSymbolAuxData(Obj, Symbol, I, Aux));<br>
<br>
       ErrorOr<COFFSymbolRef> Linked = Obj->getSymbol(Aux->TagIndex);<br>
       StringRef LinkedName;<br>
@@ -943,8 +932,7 @@ void COFFDumper::printSymbol(const Symbo<br>
<br>
     } else if (Symbol.isFileRecord()) {<br>
       const char *FileName;<br>
-      if (error(getSymbolAuxData(Obj, Symbol, I, FileName)))<br>
-        break;<br>
+      error(getSymbolAuxData(Obj, Symbol, I, FileName));<br>
<br>
       DictScope AS(W, "AuxFileRecord");<br>
<br>
@@ -954,8 +942,7 @@ void COFFDumper::printSymbol(const Symbo<br>
       break;<br>
     } else if (Symbol.isSectionDefinition()) {<br>
       const coff_aux_section_definition *Aux;<br>
-      if (error(getSymbolAuxData(Obj, Symbol, I, Aux)))<br>
-        break;<br>
+      error(getSymbolAuxData(Obj, Symbol, I, Aux));<br>
<br>
       int32_t AuxNumber = Aux->getNumber(Symbol.isBigObj());<br>
<br>
@@ -986,8 +973,7 @@ void COFFDumper::printSymbol(const Symbo<br>
       }<br>
     } else if (Symbol.isCLRToken()) {<br>
       const coff_aux_clr_token *Aux;<br>
-      if (error(getSymbolAuxData(Obj, Symbol, I, Aux)))<br>
-        break;<br>
+      error(getSymbolAuxData(Obj, Symbol, I, Aux));<br>
<br>
       ErrorOr<COFFSymbolRef> ReferredSym =<br>
           Obj->getSymbol(Aux->SymbolTableIndex);<br>
@@ -1040,9 +1026,9 @@ void COFFDumper::printImportedSymbols(<br>
     iterator_range<imported_symbol_iterator> Range) {<br>
   for (const ImportedSymbolRef &I : Range) {<br>
     StringRef Sym;<br>
-    if (error(I.getSymbolName(Sym))) return;<br>
+    error(I.getSymbolName(Sym));<br>
     uint16_t Ordinal;<br>
-    if (error(I.getOrdinal(Ordinal))) return;<br>
+    error(I.getOrdinal(Ordinal));<br>
     W.printNumber("Symbol", Sym, Ordinal);<br>
   }<br>
 }<br>
@@ -1054,12 +1040,12 @@ void COFFDumper::printDelayImportedSymbo<br>
   for (const ImportedSymbolRef &S : Range) {<br>
     DictScope Import(W, "Import");<br>
     StringRef Sym;<br>
-    if (error(S.getSymbolName(Sym))) return;<br>
+    error(S.getSymbolName(Sym));<br>
     uint16_t Ordinal;<br>
-    if (error(S.getOrdinal(Ordinal))) return;<br>
+    error(S.getOrdinal(Ordinal));<br>
     W.printNumber("Symbol", Sym, Ordinal);<br>
     uint64_t Addr;<br>
-    if (error(I.getImportAddress(Index++, Addr))) return;<br>
+    error(I.getImportAddress(Index++, Addr));<br>
     W.printHex("Address", Addr);<br>
   }<br>
 }<br>
@@ -1069,12 +1055,12 @@ void COFFDumper::printCOFFImports() {<br>
   for (const ImportDirectoryEntryRef &I : Obj->import_directories()) {<br>
     DictScope Import(W, "Import");<br>
     StringRef Name;<br>
-    if (error(I.getName(Name))) return;<br>
+    error(I.getName(Name));<br>
     W.printString("Name", Name);<br>
     uint32_t Addr;<br>
-    if (error(I.getImportLookupTableRVA(Addr))) return;<br>
+    error(I.getImportLookupTableRVA(Addr));<br>
     W.printHex("ImportLookupTableRVA", Addr);<br>
-    if (error(I.getImportAddressTableRVA(Addr))) return;<br>
+    error(I.getImportAddressTableRVA(Addr));<br>
     W.printHex("ImportAddressTableRVA", Addr);<br>
     printImportedSymbols(I.imported_symbols());<br>
   }<br>
@@ -1083,10 +1069,10 @@ void COFFDumper::printCOFFImports() {<br>
   for (const DelayImportDirectoryEntryRef &I : Obj->delay_import_directories()) {<br>
     DictScope Import(W, "DelayImport");<br>
     StringRef Name;<br>
-    if (error(I.getName(Name))) return;<br>
+    error(I.getName(Name));<br>
     W.printString("Name", Name);<br>
     const delay_import_directory_table_entry *Table;<br>
-    if (error(I.getDelayImportTable(Table))) return;<br>
+    error(I.getDelayImportTable(Table));<br>
     W.printHex("Attributes", Table->Attributes);<br>
     W.printHex("ModuleHandle", Table->ModuleHandle);<br>
     W.printHex("ImportAddressTable", Table->DelayImportAddressTable);<br>
@@ -1104,12 +1090,9 @@ void COFFDumper::printCOFFExports() {<br>
     StringRef Name;<br>
     uint32_t Ordinal, RVA;<br>
<br>
-    if (error(E.getSymbolName(Name)))<br>
-      continue;<br>
-    if (error(E.getOrdinal(Ordinal)))<br>
-      continue;<br>
-    if (error(E.getExportRVA(RVA)))<br>
-      continue;<br>
+    error(E.getSymbolName(Name));<br>
+    error(E.getOrdinal(Ordinal));<br>
+    error(E.getExportRVA(RVA));<br>
<br>
     W.printNumber("Ordinal", Ordinal);<br>
     W.printString("Name", Name);<br>
@@ -1122,13 +1105,11 @@ void COFFDumper::printCOFFDirectives() {<br>
     StringRef Contents;<br>
     StringRef Name;<br>
<br>
-    if (error(Section.getName(Name)))<br>
-      continue;<br>
+    error(Section.getName(Name));<br>
     if (Name != ".drectve")<br>
       continue;<br>
<br>
-    if (error(Section.getContents(Contents)))<br>
-      return;<br>
+    error(Section.getContents(Contents));<br>
<br>
     W.printString("Directive(s)", Contents);<br>
   }<br>
@@ -1152,10 +1133,8 @@ void COFFDumper::printCOFFBaseReloc() {<br>
   for (const BaseRelocRef &I : Obj->base_relocs()) {<br>
     uint8_t Type;<br>
     uint32_t RVA;<br>
-    if (error(I.getRVA(RVA)))<br>
-      continue;<br>
-    if (error(I.getType(Type)))<br>
-      continue;<br>
+    error(I.getRVA(RVA));<br>
+    error(I.getType(Type));<br>
     DictScope Import(W, "Entry");<br>
     W.printString("Type", getBaseRelocTypeName(Type));<br>
     W.printHex("Address", RVA);<br>
<br>
Modified: llvm/trunk/tools/llvm-readobj/ELFDumper.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_tools_llvm-2Dreadobj_ELFDumper.cpp-3Frev-3D242656-26r1-3D242655-26r2-3D242656-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=qL0oug27bIz0-rtdsxbJM1BNjrTBO_DDwfeIEHBTQQc&s=n4WvXkd33hDagfcS1OOG-BFJtVezGz24gZKFFqTXG8w&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-readobj/ELFDumper.cpp?rev=242656&r1=242655&r2=242656&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/llvm-readobj/ELFDumper.cpp (original)<br>
+++ llvm/trunk/tools/llvm-readobj/ELFDumper.cpp Sun Jul 19 22:23:55 2015<br>
@@ -164,8 +164,8 @@ getSectionNameIndex(const ELFO &Obj, con<br>
     if (SectionIndex == SHN_XINDEX)<br>
       SectionIndex = Obj.getExtendedSymbolTableIndex(&*Symbol);<br>
     ErrorOr<const typename ELFO::Elf_Shdr *> Sec = Obj.getSection(SectionIndex);<br>
-    if (!error(Sec.getError()))<br>
-      SectionName = errorOrDefault(Obj.getSectionName(*Sec));<br>
+    error(Sec.getError());<br>
+    SectionName = errorOrDefault(Obj.getSectionName(*Sec));<br>
   }<br>
 }<br>
<br>
@@ -752,19 +752,17 @@ void ELFDumper<ELFT>::printRelocation(co<br>
       Obj->getRelocationSymbol(Sec, &Rel);<br>
   if (Sym.second && Sym.second->getType() == ELF::STT_SECTION) {<br>
     ErrorOr<const Elf_Shdr *> Sec = Obj->getSection(Sym.second);<br>
-    if (!error(Sec.getError())) {<br>
-      ErrorOr<StringRef> SecName = Obj->getSectionName(*Sec);<br>
-      if (SecName)<br>
-        TargetName = SecName.get();<br>
-    }<br>
+    error(Sec.getError());<br>
+    ErrorOr<StringRef> SecName = Obj->getSectionName(*Sec);<br>
+    if (SecName)<br>
+      TargetName = SecName.get();<br>
   } else if (Sym.first) {<br>
     const Elf_Shdr *SymTable = Sym.first;<br>
     ErrorOr<const Elf_Shdr *> StrTableSec = Obj->getSection(SymTable->sh_link);<br>
-    if (!error(StrTableSec.getError())) {<br>
-      ErrorOr<StringRef> StrTableOrErr = Obj->getStringTable(*StrTableSec);<br>
-      if (!error(StrTableOrErr.getError()))<br>
-        TargetName = errorOrDefault(Sym.second->getName(*StrTableOrErr));<br>
-    }<br>
+    error(StrTableSec.getError());<br>
+    ErrorOr<StringRef> StrTableOrErr = Obj->getStringTable(*StrTableSec);<br>
+    error(StrTableOrErr.getError());<br>
+    TargetName = errorOrDefault(Sym.second->getName(*StrTableOrErr));<br>
   }<br>
<br>
   if (opts::ExpandRelocs) {<br>
<br>
Modified: llvm/trunk/tools/llvm-readobj/MachODumper.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_tools_llvm-2Dreadobj_MachODumper.cpp-3Frev-3D242656-26r1-3D242655-26r2-3D242656-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=qL0oug27bIz0-rtdsxbJM1BNjrTBO_DDwfeIEHBTQQc&s=A5R0dUHDyaoQ0q7Q5EsBoxjUwJVzRGW9fcVn75QG1F0&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-readobj/MachODumper.cpp?rev=242656&r1=242655&r2=242656&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/llvm-readobj/MachODumper.cpp (original)<br>
+++ llvm/trunk/tools/llvm-readobj/MachODumper.cpp Sun Jul 19 22:23:55 2015<br>
@@ -375,8 +375,7 @@ void MachODumper::printSections(const Ma<br>
     DataRefImpl DR = Section.getRawDataRefImpl();<br>
<br>
     StringRef Name;<br>
-    if (error(Section.getName(Name)))<br>
-      Name = "";<br>
+    error(Section.getName(Name));<br>
<br>
     ArrayRef<char> RawName = Obj->getSectionRawName(DR);<br>
     StringRef SegmentName = Obj->getSectionFinalSegmentName(DR);<br>
@@ -419,8 +418,7 @@ void MachODumper::printSections(const Ma<br>
       bool IsBSS = Section.isBSS();<br>
       if (!IsBSS) {<br>
         StringRef Data;<br>
-        if (error(Section.getContents(Data)))<br>
-          break;<br>
+        error(Section.getContents(Data));<br>
<br>
         W.printBinaryBlock("SectionData", Data);<br>
       }<br>
@@ -434,8 +432,7 @@ void MachODumper::printRelocations() {<br>
   std::error_code EC;<br>
   for (const SectionRef &Section : Obj->sections()) {<br>
     StringRef Name;<br>
-    if (error(Section.getName(Name)))<br>
-      continue;<br>
+    error(Section.getName(Name));<br>
<br>
     bool PrintedGroup = false;<br>
     for (const RelocationRef &Reloc : Section.relocations()) {<br>
@@ -475,15 +472,13 @@ void MachODumper::printRelocation(const<br>
     symbol_iterator Symbol = Reloc.getSymbol();<br>
     if (Symbol != Obj->symbol_end()) {<br>
       ErrorOr<StringRef> TargetNameOrErr = Symbol->getName();<br>
-      if (error(TargetNameOrErr.getError()))<br>
-        return;<br>
+      error(TargetNameOrErr.getError());<br>
       TargetName = *TargetNameOrErr;<br>
     }<br>
   } else if (!IsScattered) {<br>
     section_iterator SecI = Obj->getRelocationSection(DR);<br>
     if (SecI != Obj->section_end()) {<br>
-      if (error(SecI->getName(TargetName)))<br>
-        return;<br>
+      error(SecI->getName(TargetName));<br>
     }<br>
   }<br>
   if (TargetName.empty())<br>
@@ -548,7 +543,8 @@ void MachODumper::printSymbol(const Symb<br>
<br>
   StringRef SectionName = "";<br>
   section_iterator SecI(Obj->section_begin());<br>
-  if (!error(Symbol.getSection(SecI)) && SecI != Obj->section_end())<br>
+  error(Symbol.getSection(SecI));<br>
+  if (SecI != Obj->section_end())<br>
     error(SecI->getName(SectionName));<br>
<br>
   DictScope D(W, "Symbol");<br>
<br>
Modified: llvm/trunk/tools/llvm-readobj/Win64EHDumper.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_tools_llvm-2Dreadobj_Win64EHDumper.cpp-3Frev-3D242656-26r1-3D242655-26r2-3D242656-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=qL0oug27bIz0-rtdsxbJM1BNjrTBO_DDwfeIEHBTQQc&s=HH6dP3Vk7Hj0vbB_9SexUIxxpP0BmChnryCWkUqbRhA&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-readobj/Win64EHDumper.cpp?rev=242656&r1=242655&r2=242656&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/llvm-readobj/Win64EHDumper.cpp (original)<br>
+++ llvm/trunk/tools/llvm-readobj/Win64EHDumper.cpp Sun Jul 19 22:23:55 2015<br>
@@ -284,11 +284,11 @@ void Dumper::printRuntimeFunction(const<br>
<br>
   const coff_section *XData;<br>
   uint64_t Offset;<br>
-  if (error(resolveRelocation(Ctx, Section, SectionOffset + 8, XData, Offset)))<br>
-    return;<br>
+  resolveRelocation(Ctx, Section, SectionOffset + 8, XData, Offset);<br>
<br>
   ArrayRef<uint8_t> Contents;<br>
-  if (error(Ctx.COFF.getSectionContents(XData, Contents)) || Contents.empty())<br>
+  error(Ctx.COFF.getSectionContents(XData, Contents));<br>
+  if (Contents.empty())<br>
     return;<br>
<br>
   Offset = Offset + RF.UnwindInfoOffset;<br>
@@ -302,15 +302,15 @@ void Dumper::printRuntimeFunction(const<br>
 void Dumper::printData(const Context &Ctx) {<br>
   for (const auto &Section : Ctx.COFF.sections()) {<br>
     StringRef Name;<br>
-    if (error(Section.getName(Name)))<br>
-      continue;<br>
+    Section.getName(Name);<br>
<br>
     if (Name != ".pdata" && !Name.startswith(".pdata$"))<br>
       continue;<br>
<br>
     const coff_section *PData = Ctx.COFF.getCOFFSection(Section);<br>
     ArrayRef<uint8_t> Contents;<br>
-    if (error(Ctx.COFF.getSectionContents(PData, Contents)) || Contents.empty())<br>
+    error(Ctx.COFF.getSectionContents(PData, Contents));<br>
+    if (Contents.empty())<br>
       continue;<br>
<br>
     const RuntimeFunction *Entries =<br>
<br>
Modified: llvm/trunk/tools/llvm-readobj/llvm-readobj.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_tools_llvm-2Dreadobj_llvm-2Dreadobj.cpp-3Frev-3D242656-26r1-3D242655-26r2-3D242656-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=qL0oug27bIz0-rtdsxbJM1BNjrTBO_DDwfeIEHBTQQc&s=E3X5_f7t4lcBqOQhKPTq_JWg9kgtVQcDmsnGw0faz30&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-readobj/llvm-readobj.cpp?rev=242656&r1=242655&r2=242656&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/llvm-readobj/llvm-readobj.cpp (original)<br>
+++ llvm/trunk/tools/llvm-readobj/llvm-readobj.cpp Sun Jul 19 22:23:55 2015<br>
@@ -188,22 +188,19 @@ namespace opts {<br>
<br>
 } // namespace opts<br>
<br>
-static int ReturnValue = EXIT_SUCCESS;<br>
-<br>
 static void reportError(Twine Msg) {<br>
-  ReturnValue = EXIT_FAILURE;<br>
   outs() << Msg << "\n";<br>
   outs().flush();<br>
+  exit(1);<br>
 }<br>
<br>
 namespace llvm {<br>
<br>
-bool error(std::error_code EC) {<br>
+void error(std::error_code EC) {<br>
   if (!EC)<br>
-    return false;<br>
+    return;<br>
<br>
   reportError(Twine("\nError reading file: ") + EC.message() + ".");<br>
-  return true;<br>
 }<br>
<br>
 bool relocAddressLess(RelocationRef a, RelocationRef b) {<br>
@@ -408,5 +405,5 @@ int main(int argc, const char *argv[]) {<br>
   std::for_each(opts::InputFilenames.begin(), opts::InputFilenames.end(),<br>
                 dumpInput);<br>
<br>
-  return ReturnValue;<br>
+  return 0;<br>
 }<br>
<br>
Modified: llvm/trunk/tools/llvm-readobj/llvm-readobj.h<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_tools_llvm-2Dreadobj_llvm-2Dreadobj.h-3Frev-3D242656-26r1-3D242655-26r2-3D242656-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=qL0oug27bIz0-rtdsxbJM1BNjrTBO_DDwfeIEHBTQQc&s=Y3yQURxuUoi5cE-MtWwRAtJxNChdL8FRy1qtjRP07u4&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-readobj/llvm-readobj.h?rev=242656&r1=242655&r2=242656&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/llvm-readobj/llvm-readobj.h (original)<br>
+++ llvm/trunk/tools/llvm-readobj/llvm-readobj.h Sun Jul 19 22:23:55 2015<br>
@@ -19,7 +19,7 @@ namespace llvm {<br>
   }<br>
<br>
   // Various helper functions.<br>
-  bool error(std::error_code ec);<br>
+  void error(std::error_code ec);<br>
   bool relocAddressLess(object::RelocationRef A,<br>
                         object::RelocationRef B);<br>
 } // namespace llvm<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;llvm-commits@cs.uiuc.edu&#39;)">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div></div><br><br>-- <br>  F<br><br>