Index: cfe/trunk/test/Frontend/remove-file-on-signal.c =================================================================== --- cfe/trunk/test/Frontend/remove-file-on-signal.c +++ cfe/trunk/test/Frontend/remove-file-on-signal.c @@ -0,0 +1,7 @@ +// RUN: rm -rf %t && mkdir -p %t && cd %t +// RUN: not --crash %clang_cc1 %s -emit-llvm -o foo.ll +// RUN: ls . | FileCheck %s --allow-empty +// CHECK-NOT: foo.ll + +#pragma clang __debug crash +FOO Index: llvm/trunk/lib/Support/Windows/Path.inc =================================================================== --- llvm/trunk/lib/Support/Windows/Path.inc +++ llvm/trunk/lib/Support/Windows/Path.inc @@ -925,9 +925,10 @@ if (Flags & F_RW) Access |= GENERIC_READ; - HANDLE H = ::CreateFileW(PathUTF16.begin(), Access, - FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, - CreationDisposition, FILE_ATTRIBUTE_NORMAL, NULL); + HANDLE H = + ::CreateFileW(PathUTF16.begin(), Access, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + NULL, CreationDisposition, FILE_ATTRIBUTE_NORMAL, NULL); if (H == INVALID_HANDLE_VALUE) { DWORD LastError = ::GetLastError();