While creating temp. file on disk, if the current filename points to a existing directory then create new temp. file inside the directory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53929 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/System/Unix/Path.inc b/lib/System/Unix/Path.inc
index 1de594b..a0def8d 100644
--- a/lib/System/Unix/Path.inc
+++ b/lib/System/Unix/Path.inc
@@ -746,8 +746,14 @@
   // Append an XXXXXX pattern to the end of the file for use with mkstemp, 
   // mktemp or our own implementation.
   char *FNBuffer = (char*) alloca(path.size()+8);
-  path.copy(FNBuffer,path.size());
-  strcpy(FNBuffer+path.size(), "-XXXXXX");
+  if (isDirectory()) {
+    std::string dirPath = getDirname();
+    strcpy(FNBuffer, dirPath.c_str());
+    strcpy(FNBuffer+dirPath.size(), "XXXXXX");
+  } else {
+    path.copy(FNBuffer,path.size());
+    strcpy(FNBuffer+path.size(), "-XXXXXX");
+  }
 
 #if defined(HAVE_MKSTEMP)
   int TempFD;