[llvm] r184115 - [yaml2obj][ELF] Exit with error status on error.

Sean Silva silvas at purdue.edu
Mon Jun 17 13:15:00 PDT 2013


Author: silvas
Date: Mon Jun 17 15:14:59 2013
New Revision: 184115

URL: http://llvm.org/viewvc/llvm-project?rev=184115&view=rev
Log:
[yaml2obj][ELF] Exit with error status on error.

Modified:
    llvm/trunk/tools/yaml2obj/yaml2elf.cpp

Modified: llvm/trunk/tools/yaml2obj/yaml2elf.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/yaml2obj/yaml2elf.cpp?rev=184115&r1=184114&r2=184115&view=diff
==============================================================================
--- llvm/trunk/tools/yaml2obj/yaml2elf.cpp (original)
+++ llvm/trunk/tools/yaml2obj/yaml2elf.cpp Mon Jun 17 15:14:59 2013
@@ -121,7 +121,7 @@ static void zero(T &Obj) {
 }
 
 template <class ELFT>
-static void writeELF(raw_ostream &OS, const ELFYAML::Object &Doc) {
+static int writeELF(raw_ostream &OS, const ELFYAML::Object &Doc) {
   using namespace llvm::ELF;
   using namespace llvm::object;
   typedef typename ELFObjectFile<ELFT>::Elf_Ehdr Elf_Ehdr;
@@ -175,7 +175,7 @@ static void writeELF(raw_ostream &OS, co
     if (SN2I.addName(Name, i)) {
       errs() << "error: Repeated section name: '" << Name
              << "' at YAML section number " << i << ".\n";
-      return;
+      return 1;
     }
   }
 
@@ -205,7 +205,7 @@ static void writeELF(raw_ostream &OS, co
       if (SN2I.lookupSection(Sec.Link, Index)) {
         errs() << "error: Unknown section referenced: '" << Sec.Link
                << "' at YAML section number " << i << ".\n";
-        return;
+        return 1;
       }
       SHeader.sh_link = Index;
     }
@@ -234,6 +234,7 @@ static void writeELF(raw_ostream &OS, co
   writeVectorData(OS, SHeaders);
   OS.write((const char *)&StrTabSHeader, sizeof(StrTabSHeader));
   CBA.writeBlobToStream(OS);
+  return 0;
 }
 
 int yaml2elf(llvm::raw_ostream &Out, llvm::MemoryBuffer *Buf) {
@@ -246,15 +247,13 @@ int yaml2elf(llvm::raw_ostream &Out, llv
   }
   if (Doc.Header.Class == ELFYAML::ELF_ELFCLASS(ELF::ELFCLASS64)) {
     if (Doc.Header.Data == ELFYAML::ELF_ELFDATA(ELF::ELFDATA2LSB))
-      writeELF<object::ELFType<support::little, 8, true> >(outs(), Doc);
+      return writeELF<object::ELFType<support::little, 8, true> >(outs(), Doc);
     else
-      writeELF<object::ELFType<support::big, 8, true> >(outs(), Doc);
+      return writeELF<object::ELFType<support::big, 8, true> >(outs(), Doc);
   } else {
     if (Doc.Header.Data == ELFYAML::ELF_ELFDATA(ELF::ELFDATA2LSB))
-      writeELF<object::ELFType<support::little, 4, false> >(outs(), Doc);
+      return writeELF<object::ELFType<support::little, 4, false> >(outs(), Doc);
     else
-      writeELF<object::ELFType<support::big, 4, false> >(outs(), Doc);
+      return writeELF<object::ELFType<support::big, 4, false> >(outs(), Doc);
   }
-
-  return 0;
 }





More information about the llvm-commits mailing list