From 676a875b06d394fa9295c690de39dff9c5f5430e Mon Sep 17 00:00:00 2001 From: Pavel Labath Date: Mon, 24 Oct 2016 14:19:28 +0000 Subject: [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 --- llvm/lib/Support/Unix/Path.inc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'llvm/lib/Support/Unix') diff --git a/llvm/lib/Support/Unix/Path.inc b/llvm/lib/Support/Unix/Path.inc index d1d0c5d2694..881a2631ec0 100644 --- a/llvm/lib/Support/Unix/Path.inc +++ b/llvm/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(); -- cgit v1.2.3