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/tools/llvm-ar/llvm-ar.cpp b/llvm/tools/llvm-ar/llvm-ar.cpp
index cf2f98f..f52f9c3 100644
--- a/llvm/tools/llvm-ar/llvm-ar.cpp
+++ b/llvm/tools/llvm-ar/llvm-ar.cpp
@@ -338,24 +338,16 @@
// modification time are also printed.
static void doDisplayTable(StringRef Name, const object::Archive::Child &C) {
if (Verbose) {
- Expected<sys::fs::perms> ModeOrErr = C.getAccessMode();
- failIfError(ModeOrErr.takeError());
- sys::fs::perms Mode = ModeOrErr.get();
+ sys::fs::perms Mode = C.getAccessMode();
printMode((Mode >> 6) & 007);
printMode((Mode >> 3) & 007);
printMode(Mode & 007);
- Expected<unsigned> UIDOrErr = C.getUID();
- failIfError(UIDOrErr.takeError());
- outs() << ' ' << UIDOrErr.get();
- Expected<unsigned> GIDOrErr = C.getGID();
- failIfError(GIDOrErr.takeError());
- outs() << '/' << GIDOrErr.get();
+ outs() << ' ' << C.getUID();
+ outs() << '/' << C.getGID();
Expected<uint64_t> Size = C.getSize();
failIfError(Size.takeError());
outs() << ' ' << format("%6llu", Size.get());
- Expected<sys::TimeValue> ModTimeOrErr = C.getLastModified();
- failIfError(ModTimeOrErr.takeError());
- outs() << ' ' << ModTimeOrErr.get().str();
+ outs() << ' ' << C.getLastModified().str();
outs() << ' ';
}
outs() << Name << "\n";
@@ -365,9 +357,7 @@
// system.
static void doExtract(StringRef Name, const object::Archive::Child &C) {
// Retain the original mode.
- Expected<sys::fs::perms> ModeOrErr = C.getAccessMode();
- failIfError(ModeOrErr.takeError());
- sys::fs::perms Mode = ModeOrErr.get();
+ sys::fs::perms Mode = C.getAccessMode();
int FD;
failIfError(sys::fs::openFileForWrite(Name, FD, sys::fs::F_None, Mode), Name);
@@ -384,12 +374,9 @@
// If we're supposed to retain the original modification times, etc. do so
// now.
- if (OriginalDates) {
- Expected<sys::TimeValue> ModTimeOrErr = C.getLastModified();
- failIfError(ModTimeOrErr.takeError());
+ if (OriginalDates)
failIfError(
- sys::fs::setLastModificationAndAccessTime(FD, ModTimeOrErr.get()));
- }
+ sys::fs::setLastModificationAndAccessTime(FD, C.getLastModified()));
if (close(FD))
fail("Could not close the file");
@@ -524,9 +511,7 @@
// operation.
sys::fs::file_status Status;
failIfError(sys::fs::status(*MI, Status), *MI);
- Expected<sys::TimeValue> ModTimeOrErr = Member.getLastModified();
- failIfError(ModTimeOrErr.takeError());
- if (Status.getLastModificationTime() < ModTimeOrErr.get()) {
+ if (Status.getLastModificationTime() < Member.getLastModified()) {
if (PosName.empty())
return IA_AddOldMember;
return IA_MoveOldMember;