In FixItRewriteToTemp::RewriteFilename don't try to close the file descriptor
with close(); return it instead.

Fixes mingw build and eliminates possible racing issues.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149043 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Rewrite/FrontendActions.cpp b/lib/Rewrite/FrontendActions.cpp
index b726d76..001a043 100644
--- a/lib/Rewrite/FrontendActions.cpp
+++ b/lib/Rewrite/FrontendActions.cpp
@@ -55,7 +55,10 @@
 namespace {
 class FixItRewriteInPlace : public FixItOptions {
 public:
-  std::string RewriteFilename(const std::string &Filename) { return Filename; }
+  std::string RewriteFilename(const std::string &Filename, int &fd) {
+    fd = -1;
+    return Filename;
+  }
 };
 
 class FixItActionSuffixInserter : public FixItOptions {
@@ -67,7 +70,8 @@
       this->FixWhatYouCan = FixWhatYouCan;
   }
 
-  std::string RewriteFilename(const std::string &Filename) {
+  std::string RewriteFilename(const std::string &Filename, int &fd) {
+    fd = -1;
     llvm::SmallString<128> Path(Filename);
     llvm::sys::path::replace_extension(Path,
       NewSuffix + llvm::sys::path::extension(Path));
@@ -77,16 +81,13 @@
 
 class FixItRewriteToTemp : public FixItOptions {
 public:
-  std::string RewriteFilename(const std::string &Filename) {
+  std::string RewriteFilename(const std::string &Filename, int &fd) {
     llvm::SmallString<128> Path;
     Path = llvm::sys::path::filename(Filename);
     Path += "-%%%%%%%%";
     Path += llvm::sys::path::extension(Filename);
-    int fd;
     llvm::SmallString<128> NewPath;
-    if (llvm::sys::fs::unique_file(Path.str(), fd, NewPath)
-          == llvm::errc::success)
-      ::close(fd);
+    llvm::sys::fs::unique_file(Path.str(), fd, NewPath);
     return NewPath.str();
   }
 };