diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-07-13 05:07:22 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-07-13 05:07:22 +0000 |
commit | 07025fe5e9533776dca6a64a017a64cd55e14958 (patch) | |
tree | b484e2e9cb002f6ba6949a64b31b91adabe0ff4f /llvm/tools | |
parent | a19899ac42e1f51867071eebb9b5bdb6d80c79d2 (diff) | |
download | bcm5719-llvm-07025fe5e9533776dca6a64a017a64cd55e14958.tar.gz bcm5719-llvm-07025fe5e9533776dca6a64a017a64cd55e14958.zip |
Try to open the file before use data from stat.
Looks like on mingw we get bogus last modification times on directories.
Should fix the mingw bots.
llvm-svn: 186240
Diffstat (limited to 'llvm/tools')
-rw-r--r-- | llvm/tools/llvm-ar/llvm-ar.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/tools/llvm-ar/llvm-ar.cpp b/llvm/tools/llvm-ar/llvm-ar.cpp index 5f47654b246..7632b00f916 100644 --- a/llvm/tools/llvm-ar/llvm-ar.cpp +++ b/llvm/tools/llvm-ar/llvm-ar.cpp @@ -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(); |