r184818 - Revert "Use the new PathV2 instead of implementing the logic in clang."

Rafael Espindola rafael.espindola at gmail.com
Mon Jun 24 19:35:32 PDT 2013


Author: rafael
Date: Mon Jun 24 21:35:32 2013
New Revision: 184818

URL: http://llvm.org/viewvc/llvm-project?rev=184818&view=rev
Log:
Revert "Use the new PathV2 instead of implementing the logic in clang."

This reverts commit 184803 while I debug the failures on the bots.

Modified:
    cfe/trunk/lib/Driver/Driver.cpp

Modified: cfe/trunk/lib/Driver/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Driver.cpp?rev=184818&r1=184817&r2=184818&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/Driver.cpp (original)
+++ cfe/trunk/lib/Driver/Driver.cpp Mon Jun 24 21:35:32 2013
@@ -30,6 +30,7 @@
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/Path.h"
+#include "llvm/Support/PathV1.h"
 #include "llvm/Support/PrettyStackTrace.h"
 #include "llvm/Support/Program.h"
 #include "llvm/Support/raw_ostream.h"
@@ -1614,15 +1615,29 @@ std::string Driver::GetProgramPath(const
 
 std::string Driver::GetTemporaryPath(StringRef Prefix, const char *Suffix)
   const {
-  SmallString<128> Path;
-  llvm::error_code EC =
-    llvm::sys::fs::unique_file(Prefix + "-%%%%%%." + Suffix, Path);
-  if (EC) {
-    Diag(clang::diag::err_unable_to_make_temp) << EC.message();
+  // FIXME: This is lame; sys::Path should provide this function (in particular,
+  // it should know how to find the temporary files dir).
+  std::string Error;
+  const char *TmpDir = ::getenv("TMPDIR");
+  if (!TmpDir)
+    TmpDir = ::getenv("TEMP");
+  if (!TmpDir)
+    TmpDir = ::getenv("TMP");
+  if (!TmpDir)
+    TmpDir = "/tmp";
+  llvm::sys::Path P(TmpDir);
+  P.appendComponent(Prefix);
+  if (P.makeUnique(false, &Error)) {
+    Diag(clang::diag::err_unable_to_make_temp) << Error;
     return "";
   }
 
-  return Path.str();
+  // FIXME: Grumble, makeUnique sometimes leaves the file around!?  PR3837.
+  P.eraseFromDisk(false, 0);
+
+  if (Suffix)
+    P.appendSuffix(Suffix);
+  return P.str();
 }
 
 /// \brief Compute target triple from args.





More information about the cfe-commits mailing list