[FS] Report errors from llvm::sys::fs::rename on Windows
authorReid Kleckner <reid@kleckner.net>
Fri, 10 Apr 2015 17:20:45 +0000 (17:20 +0000)
committerReid Kleckner <reid@kleckner.net>
Fri, 10 Apr 2015 17:20:45 +0000 (17:20 +0000)
Previously we would always report success, which is pretty bogus.

I'm too lazy to write a test where rename will portably fail on all
platforms. I'm just trying to fix breakage introduced by r234597, which
happened to tickle this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234611 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/Windows/Path.inc

index d558ff5bfae69fb251c9ae05e5555215fbe282a3..b5523aaf4387756359e6449919e4fc591665921f 100644 (file)
@@ -261,6 +261,7 @@ std::error_code rename(const Twine &from, const Twine &to) {
                       MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING))
       return std::error_code();
     DWORD LastError = ::GetLastError();
+    ec = windows_error(LastError);
     if (LastError != ERROR_ACCESS_DENIED)
       break;
     // Retry MoveFile() at ACCESS_DENIED.