clang/GlobalModuleIndex: Don't open the same file twice. Use raw_fd_ostream(fd, ...) instead.

FIXME: PathV2::unique_file() is assumed to open the file with binary mode on win32.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173330 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Serialization/GlobalModuleIndex.cpp b/lib/Serialization/GlobalModuleIndex.cpp
index 3b60979..1600e35 100644
--- a/lib/Serialization/GlobalModuleIndex.cpp
+++ b/lib/Serialization/GlobalModuleIndex.cpp
@@ -507,9 +507,7 @@
     return EC_IOError;
 
   // Open the temporary global index file for output.
-  std::string ErrorInfo;
-  llvm::raw_fd_ostream Out(IndexTmpPath.c_str(), ErrorInfo,
-                           llvm::raw_fd_ostream::F_Binary);
+  llvm::raw_fd_ostream Out(TmpFD, true);
   if (Out.has_error())
     return EC_IOError;
 
diff --git a/test/Modules/global_index.m b/test/Modules/global_index.m
index 2af18c4..423e111 100644
--- a/test/Modules/global_index.m
+++ b/test/Modules/global_index.m
@@ -1,8 +1,6 @@
 // RUN: rm -rf %t
 // RUN: %clang_cc1 -Wauto-import -fmodule-cache-path %t -fdisable-module-hash -fmodules -generate-module-index -F %S/Inputs %s -verify
 // RUN: ls %t|grep modules.idx
-// REQUIRES: shell
-// XFAIL: mingw32
 
 // expected-no-diagnostics
 @import DependsOnModule;