Try to open the file before use data from stat.
authorRafael Espindola <rafael.espindola@gmail.com>
Sat, 13 Jul 2013 05:07:22 +0000 (05:07 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Sat, 13 Jul 2013 05:07:22 +0000 (05:07 +0000)
Looks like on mingw we get bogus last modification times on directories.
Should fix the mingw bots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186240 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-ar/llvm-ar.cpp

index 5f47654b2467aebb4c1b87fa4cff18e3e67210d5..7632b00f91680356ef7d2b152cec8121fc445d67 100644 (file)
@@ -560,6 +560,9 @@ static void performWriteOperation(ArchiveOperation Operation,
       sys::fs::file_status Status;
       failIfError(sys::fs::status(FileName, Status), FileName);
 
+      OwningPtr<MemoryBuffer> File;
+      failIfError(MemoryBuffer::getFile(FileName, File), FileName);
+
       uint64_t secondsSinceEpoch =
           Status.getLastModificationTime().toEpochTime();
       printWithSpacePadding(Out, secondsSinceEpoch, 12);
@@ -570,8 +573,6 @@ static void performWriteOperation(ArchiveOperation Operation,
       printWithSpacePadding(Out, Status.getSize(), 10);
       Out << "`\n";
 
-      OwningPtr<MemoryBuffer> File;
-      failIfError(MemoryBuffer::getFile(FileName, File), FileName);
       Out << File->getBuffer();
     } else {
       object::Archive::child_iterator OldMember = I->getOld();