From: Pavel Labath Date: Mon, 24 Oct 2016 14:19:28 +0000 (+0000) Subject: [Chrono] Fix !HAVE_FUTIMENS build X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f62fc7a37758275b713f1b27942770139c02e3ee;p=llvm [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(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284977 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Support/Unix/Path.inc b/lib/Support/Unix/Path.inc index d1d0c5d2694..881a2631ec0 100644 --- a/lib/Support/Unix/Path.inc +++ b/lib/Support/Unix/Path.inc @@ -451,7 +451,8 @@ std::error_code setLastModificationAndAccessTime(int FD, TimePoint<> Time) { return std::error_code(); #elif defined(HAVE_FUTIMES) timeval Times[2]; - Times[0] = Times[1] = sys::toTimeVal(Time); + Times[0] = Times[1] = sys::toTimeVal( + std::chrono::time_point_cast(Time)); if (::futimes(FD, Times)) return std::error_code(errno, std::generic_category()); return std::error_code();