Set REQUIRES shell on the test cases for r186044
[oota-llvm.git] / lib / Support / GraphWriter.cpp
index f651e25e7669d29aa29676a1eaed45f5230b2b44..7a9400d28afa447718ce27ae8e4e2f10820365de 100644 (file)
@@ -16,7 +16,6 @@
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/Path.h"
-#include "llvm/Support/PathV1.h"
 #include "llvm/Support/Program.h"
 using namespace llvm;
 
@@ -66,18 +65,16 @@ StringRef llvm::DOT::getColorString(unsigned ColorNumber) {
   return Colors[ColorNumber % NumColors];
 }
 
-std::string llvm::createGraphFilename(const Twine &Name) {
-  std::string ErrMsg;
-  sys::Path Filename = sys::Path::GetTemporaryDirectory(&ErrMsg);
-  if (Filename.isEmpty()) {
-    errs() << "Error: " << ErrMsg << "\n";
-    return "";
-  }
-  Filename.appendComponent((Name + ".dot").str());
-  if (Filename.makeUnique(true,&ErrMsg)) {
-    errs() << "Error: " << ErrMsg << "\n";
+std::string llvm::createGraphFilename(const Twine &Name, int &FD) {
+  FD = -1;
+  SmallString<128> Filename;
+  error_code EC = sys::fs::createTemporaryFile(Name, "dot", FD, Filename);
+  if (EC) {
+    errs() << "Error: " << EC.message() << "\n";
     return "";
   }
+
+  errs() << "Writing '" << Filename << "'... ";
   return Filename.str();
 }
 
@@ -118,9 +115,9 @@ void llvm::DisplayGraph(StringRef FilenameRef, bool wait,
   if (!ExecGraphViewer(Graphviz, args, Filename, wait, ErrMsg))
     return;
 
-#elif HAVE_XDOT_PY
+#elif HAVE_XDOT
   std::vector<const char*> args;
-  args.push_back(LLVM_PATH_XDOT_PY);
+  args.push_back(LLVM_PATH_XDOT);
   args.push_back(Filename.c_str());
 
   switch (program) {
@@ -134,14 +131,12 @@ void llvm::DisplayGraph(StringRef FilenameRef, bool wait,
   args.push_back(0);
 
   errs() << "Running 'xdot.py' program... ";
-  if (!ExecGraphViewer(LLVM_PATH_XDOT_PY, args, Filename, wait, ErrMsg))
+  if (!ExecGraphViewer(LLVM_PATH_XDOT, args, Filename, wait, ErrMsg))
     return;
 
 #elif (HAVE_GV && (HAVE_DOT || HAVE_FDP || HAVE_NEATO || \
                    HAVE_TWOPI || HAVE_CIRCO))
-  sys::Path PSFilename = sys::Path(Filename);
-  PSFilename.appendSuffix("ps");
-
+  std::string PSFilename = Filename + ".ps";
   std::string prog;
 
   // Set default grapher
@@ -206,7 +201,7 @@ void llvm::DisplayGraph(StringRef FilenameRef, bool wait,
   args.push_back(0);
 
   ErrMsg.clear();
-  if (!ExecGraphViewer(gv, args, PSFilename.str(), wait, ErrMsg))
+  if (!ExecGraphViewer(gv, args, PSFilename, wait, ErrMsg))
     return;
 
 #elif HAVE_DOTTY