diff options
author | Vedant Kumar <vsk@apple.com> | 2016-08-03 18:44:32 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2016-08-03 18:44:32 +0000 |
commit | bfb6072d84fbd6169d57afe9d812de1abca7b5d7 (patch) | |
tree | ca63aef2231c865815c8d3af447996f6e9c34b96 /llvm/lib/Object/Archive.cpp | |
parent | 23ee12e173762f977f1deeec14dccb32f6478204 (diff) | |
download | bcm5719-llvm-bfb6072d84fbd6169d57afe9d812de1abca7b5d7.tar.gz bcm5719-llvm-bfb6072d84fbd6169d57afe9d812de1abca7b5d7.zip |
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
Diffstat (limited to 'llvm/lib/Object/Archive.cpp')
-rw-r--r-- | llvm/lib/Object/Archive.cpp | 62 |
1 files changed, 12 insertions, 50 deletions
diff --git a/llvm/lib/Object/Archive.cpp b/llvm/lib/Object/Archive.cpp index 827affebf43..586f9c1da81 100644 --- a/llvm/lib/Object/Archive.cpp +++ b/llvm/lib/Object/Archive.cpp @@ -221,81 +221,43 @@ Expected<uint32_t> ArchiveMemberHeader::getSize() const { 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; } |