Revert "More fixes to get good error messages for bad archives."

This reverts commit r277540. It breaks the build with:

../lib/Object/Archive.cpp:264:41: error: return type of out-of-line definition of 'llvm::object::ArchiveMemberHeader::getUID' differs from that in the declaration
Expected<unsigned> ArchiveMemberHeader::getUID() const {
~~~~~~~~~~~~~~~~~~                      ^
include/llvm/Object/Archive.h:53:12: note: previous declaration is here
  unsigned getUID() const;
  ~~~~~~~~ ^

llvm-svn: 277627
diff --git a/llvm/lib/Object/Archive.cpp b/llvm/lib/Object/Archive.cpp
index 827affe..586f9c1 100644
--- a/llvm/lib/Object/Archive.cpp
+++ b/llvm/lib/Object/Archive.cpp
@@ -221,81 +221,43 @@
   return Ret;
 }
 
-Expected<sys::fs::perms> ArchiveMemberHeader::getAccessMode() const {
+sys::fs::perms ArchiveMemberHeader::getAccessMode() const {
   unsigned Ret;
   if (StringRef(ArMemHdr->AccessMode,
-                sizeof(ArMemHdr->AccessMode)).rtrim(' ').getAsInteger(8, Ret)) {
-    std::string Buf;
-    raw_string_ostream OS(Buf);
-    OS.write_escaped(llvm::StringRef(ArMemHdr->AccessMode,
-                                   sizeof(ArMemHdr->AccessMode)).rtrim(" "));
-    OS.flush();
-    uint64_t Offset = reinterpret_cast<const char *>(ArMemHdr) -
-                      Parent->getData().data();
-    return malformedError("characters in AccessMode field in archive header "
-                          "are not all decimal numbers: '" + Buf + "' for the "
-                          "archive member header at offset " + Twine(Offset));
-  }
+                sizeof(ArMemHdr->AccessMode)).rtrim(' ').getAsInteger(8, Ret))
+    llvm_unreachable("Access mode is not an octal number.");
   return static_cast<sys::fs::perms>(Ret);
 }
 
-Expected<sys::TimeValue> ArchiveMemberHeader::getLastModified() const {
+sys::TimeValue ArchiveMemberHeader::getLastModified() const {
   unsigned Seconds;
   if (StringRef(ArMemHdr->LastModified,
                 sizeof(ArMemHdr->LastModified)).rtrim(' ')
-          .getAsInteger(10, Seconds)) {
-    std::string Buf;
-    raw_string_ostream OS(Buf);
-    OS.write_escaped(llvm::StringRef(ArMemHdr->LastModified,
-                                   sizeof(ArMemHdr->LastModified)).rtrim(" "));
-    OS.flush();
-    uint64_t Offset = reinterpret_cast<const char *>(ArMemHdr) -
-                      Parent->getData().data();
-    return malformedError("characters in LastModified field in archive header "
-                          "are not all decimal numbers: '" + Buf + "' for the "
-                          "archive member header at offset " + Twine(Offset));
-  }
+          .getAsInteger(10, Seconds))
+    llvm_unreachable("Last modified time not a decimal number.");
 
   sys::TimeValue Ret;
   Ret.fromEpochTime(Seconds);
   return Ret;
 }
 
-Expected<unsigned> ArchiveMemberHeader::getUID() const {
+unsigned ArchiveMemberHeader::getUID() const {
   unsigned Ret;
   StringRef User = StringRef(ArMemHdr->UID, sizeof(ArMemHdr->UID)).rtrim(' ');
   if (User.empty())
     return 0;
-  if (User.getAsInteger(10, Ret)) {
-    std::string Buf;
-    raw_string_ostream OS(Buf);
-    OS.write_escaped(User);
-    OS.flush();
-    uint64_t Offset = reinterpret_cast<const char *>(ArMemHdr) -
-                      Parent->getData().data();
-    return malformedError("characters in UID field in archive header "
-                          "are not all decimal numbers: '" + Buf + "' for the "
-                          "archive member header at offset " + Twine(Offset));
-  }
+  if (User.getAsInteger(10, Ret))
+    llvm_unreachable("UID time not a decimal number.");
   return Ret;
 }
 
-Expected<unsigned> ArchiveMemberHeader::getGID() const {
+unsigned ArchiveMemberHeader::getGID() const {
   unsigned Ret;
   StringRef Group = StringRef(ArMemHdr->GID, sizeof(ArMemHdr->GID)).rtrim(' ');
   if (Group.empty())
     return 0;
-  if (Group.getAsInteger(10, Ret)) {
-    std::string Buf;
-    raw_string_ostream OS(Buf);
-    OS.write_escaped(Group);
-    OS.flush();
-    uint64_t Offset = reinterpret_cast<const char *>(ArMemHdr) -
-                      Parent->getData().data();
-    return malformedError("characters in GID field in archive header "
-                          "are not all decimal numbers: '" + Buf + "' for the "
-                          "archive member header at offset " + Twine(Offset));
-  }
+  if (Group.getAsInteger(10, Ret))
+    llvm_unreachable("GID time not a decimal number.");
   return Ret;
 }
 
diff --git a/llvm/lib/Object/ArchiveWriter.cpp b/llvm/lib/Object/ArchiveWriter.cpp
index 4ede536..922d1b7 100644
--- a/llvm/lib/Object/ArchiveWriter.cpp
+++ b/llvm/lib/Object/ArchiveWriter.cpp
@@ -47,22 +47,10 @@
   NewArchiveMember M;
   M.Buf = MemoryBuffer::getMemBuffer(*BufOrErr, false);
   if (!Deterministic) {
-    Expected<sys::TimeValue> ModTimeOrErr = OldMember.getLastModified();
-    if (!ModTimeOrErr)
-      return ModTimeOrErr.takeError();
-    M.ModTime = ModTimeOrErr.get();
-    Expected<unsigned> UIDOrErr = OldMember.getUID();
-    if (!UIDOrErr)
-      return UIDOrErr.takeError();
-    M.UID = UIDOrErr.get();
-    Expected<unsigned> GIDOrErr = OldMember.getGID();
-    if (!GIDOrErr)
-      return GIDOrErr.takeError();
-    M.GID = GIDOrErr.get();
-    Expected<sys::fs::perms> AccessModeOrErr = OldMember.getAccessMode();
-    if (!AccessModeOrErr)
-      return AccessModeOrErr.takeError();
-    M.Perms = AccessModeOrErr.get();
+    M.ModTime = OldMember.getLastModified();
+    M.UID = OldMember.getUID();
+    M.GID = OldMember.getGID();
+    M.Perms = OldMember.getAccessMode();
   }
   return std::move(M);
 }