Fix TimeValue::toWin32Time() to be symmetric to fromWin32Time() and compatible to...
authorNAKAMURA Takumi <geek4civic@gmail.com>
Tue, 16 Jul 2013 02:43:51 +0000 (02:43 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Tue, 16 Jul 2013 02:43:51 +0000 (02:43 +0000)
llvm-ar is the only user of toWin32Time() (via setLastModificationAndAccessTime), and r186298 can be reverted.
It had been buggy since the initial commit.

FIXME: Could we rename {from|to}Win32Time as {from|to}Win32FILETIME in TimeValue?
llvm-svn: 186374

llvm/include/llvm/Support/TimeValue.h
llvm/test/Object/extract.ll

index 4b48b84..2785408 100644 (file)
@@ -253,9 +253,10 @@ namespace sys {
 
     /// Converts the TimeValue into the corresponding number of "ticks" for
     /// Win32 platforms, correcting for the difference in Win32 zero time.
-    /// @brief Convert to windows time (seconds since 12:00:00a Jan 1, 1601)
+    /// @brief Convert to Win32's FILETIME
+    /// (100ns intervals since 00:00:00 Jan 1, 1601 UTC)
     uint64_t toWin32Time() const {
-      uint64_t result = seconds_ - Win32ZeroTimeSeconds;
+      uint64_t result = (uint64_t)10000000 * (seconds_ - Win32ZeroTimeSeconds);
       result += nanos_ / NANOSECONDS_PER_WIN32_TICK;
       return result;
     }
index ba341b8..4e519ae 100644 (file)
@@ -3,9 +3,6 @@
 ; This test just makes sure that llvm-ar can extract bytecode members
 ; from various style archives.
 
-; FIXME: Investigate Win32's TimeValue stuff!
-; XFAIL: mingw32
-
 ; REQUIRES: shell
 
 ; RUN: cd %T