[Chrono] Fix !HAVE_FUTIMENS build

If we don't have futimens(), we fall back to futimes(), which only supports
microsecond timestamps. In that case, we need to explicitly cast away the extra
precision in setLastModificationAndAccessTime().

llvm-svn: 284977
This commit is contained in:
Pavel Labath 2016-10-24 14:19:28 +00:00
parent 183098ca47
commit 676a875b06
1 changed files with 2 additions and 1 deletions

View File

@ -451,7 +451,8 @@ std::error_code setLastModificationAndAccessTime(int FD, TimePoint<> Time) {
return std::error_code(); return std::error_code();
#elif defined(HAVE_FUTIMES) #elif defined(HAVE_FUTIMES)
timeval Times[2]; timeval Times[2];
Times[0] = Times[1] = sys::toTimeVal(Time); Times[0] = Times[1] = sys::toTimeVal(
std::chrono::time_point_cast<std::chrono::microseconds>(Time));
if (::futimes(FD, Times)) if (::futimes(FD, Times))
return std::error_code(errno, std::generic_category()); return std::error_code(errno, std::generic_category());
return std::error_code(); return std::error_code();