For PR351:
authorReid Spencer <rspencer@reidspencer.com>
Wed, 15 Dec 2004 01:53:08 +0000 (01:53 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Wed, 15 Dec 2004 01:53:08 +0000 (01:53 +0000)
* Convert use of getUniqueFilename to sys::Path::makeUnique();

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18949 91177308-0d34-0410-b5e6-96231b3b80d8

tools/bugpoint/ExecutionDriver.cpp
tools/bugpoint/Miscompilation.cpp
tools/bugpoint/OptimizerDriver.cpp

index 0687c4c08f3b2f41d977a7f9a4f2ee58bea34fce..fbba6871f0ebdb815e6db1dfeb9d2a3b5aedbb6a 100644 (file)
@@ -152,18 +152,19 @@ bool BugDriver::initializeExecutionEnvironment() {
 ///
 void BugDriver::compileProgram(Module *M) {
   // Emit the program to a bytecode file...
-  std::string BytecodeFile = getUniqueFilename("bugpoint-test-program.bc");
-  if (writeProgramToFile(BytecodeFile, M)) {
+  sys::Path BytecodeFile ("bugpoint-test-program.bc");
+  BytecodeFile.makeUnique();
+  if (writeProgramToFile(BytecodeFile.toString(), M)) {
     std::cerr << ToolName << ": Error emitting bytecode to file '"
               << BytecodeFile << "'!\n";
     exit(1);
   }
 
     // Remove the temporary bytecode file when we are done.
-  FileRemover BytecodeFileRemover(BytecodeFile);
+  FileRemover BytecodeFileRemover(BytecodeFile.toString());
 
   // Actually compile the program!
-  Interpreter->compileProgram(BytecodeFile);
+  Interpreter->compileProgram(BytecodeFile.toString());
 }
 
 
@@ -181,7 +182,9 @@ std::string BugDriver::executeProgram(std::string OutputFile,
   bool CreatedBytecode = false;
   if (BytecodeFile.empty()) {
     // Emit the program to a bytecode file...
-    BytecodeFile = getUniqueFilename("bugpoint-test-program.bc");
+    sys::Path uniqueFilename("bugpoint-test-program.bc");
+    uniqueFilename.makeUnique();
+    BytecodeFile = uniqueFilename.toString();
 
     if (writeProgramToFile(BytecodeFile, Program)) {
       std::cerr << ToolName << ": Error emitting bytecode to file '"
@@ -197,7 +200,9 @@ std::string BugDriver::executeProgram(std::string OutputFile,
   if (OutputFile.empty()) OutputFile = "bugpoint-execution-output";
 
   // Check to see if this is a valid output filename...
-  OutputFile = getUniqueFilename(OutputFile);
+  sys::Path uniqueFile(OutputFile);
+  uniqueFile.makeUnique();
+  OutputFile = uniqueFile.toString();
 
   // Figure out which shared objects to run, if any.
   std::vector<std::string> SharedObjs(AdditionalSOs);
index e02cf6562c20fd466cff7ff1db61a468e3f2bd05..2a23ee9e5d931ffe971a9c83f4cf40d8f8237b49 100644 (file)
@@ -733,33 +733,35 @@ static void CleanupAndPrepareModules(BugDriver &BD, Module *&Test,
 static bool TestCodeGenerator(BugDriver &BD, Module *Test, Module *Safe) {
   CleanupAndPrepareModules(BD, Test, Safe);
 
-  std::string TestModuleBC = getUniqueFilename("bugpoint.test.bc");
-  if (BD.writeProgramToFile(TestModuleBC, Test)) {
+  sys::Path TestModuleBC("bugpoint.test.bc");
+  TestModuleBC.makeUnique();
+  if (BD.writeProgramToFile(TestModuleBC.toString(), Test)) {
     std::cerr << "Error writing bytecode to `" << TestModuleBC << "'\nExiting.";
     exit(1);
   }
   delete Test;
 
   // Make the shared library
-  std::string SafeModuleBC = getUniqueFilename("bugpoint.safe.bc");
+  sys::Path SafeModuleBC("bugpoint.safe.bc");
+  SafeModuleBC.makeUnique();
 
-  if (BD.writeProgramToFile(SafeModuleBC, Safe)) {
+  if (BD.writeProgramToFile(SafeModuleBC.toString(), Safe)) {
     std::cerr << "Error writing bytecode to `" << SafeModuleBC << "'\nExiting.";
     exit(1);
   }
-  std::string SharedObject = BD.compileSharedObject(SafeModuleBC);
+  std::string SharedObject = BD.compileSharedObject(SafeModuleBC.toString());
   delete Safe;
 
   // Run the code generator on the `Test' code, loading the shared library.
   // The function returns whether or not the new output differs from reference.
-  int Result = BD.diffProgram(TestModuleBC, SharedObject, false);
+  int Result = BD.diffProgram(TestModuleBC.toString(), SharedObject, false);
 
   if (Result)
     std::cerr << ": still failing!\n";
   else
     std::cerr << ": didn't fail.\n";
-  removeFile(TestModuleBC);
-  removeFile(SafeModuleBC);
+  removeFile(TestModuleBC.toString());
+  removeFile(SafeModuleBC.toString());
   removeFile(SharedObject);
 
   return Result;
@@ -791,20 +793,24 @@ bool BugDriver::debugCodeGenerator() {
   // Condition the modules
   CleanupAndPrepareModules(*this, ToCodeGen, ToNotCodeGen);
 
-  std::string TestModuleBC = getUniqueFilename("bugpoint.test.bc");
-  if (writeProgramToFile(TestModuleBC, ToCodeGen)) {
+  sys::Path TestModuleBC("bugpoint.test.bc");
+  TestModuleBC.makeUnique();
+
+  if (writeProgramToFile(TestModuleBC.toString(), ToCodeGen)) {
     std::cerr << "Error writing bytecode to `" << TestModuleBC << "'\nExiting.";
     exit(1);
   }
   delete ToCodeGen;
 
   // Make the shared library
-  std::string SafeModuleBC = getUniqueFilename("bugpoint.safe.bc");
-  if (writeProgramToFile(SafeModuleBC, ToNotCodeGen)) {
+  sys::Path SafeModuleBC("bugpoint.safe.bc");
+  SafeModuleBC.makeUnique();
+
+  if (writeProgramToFile(SafeModuleBC.toString(), ToNotCodeGen)) {
     std::cerr << "Error writing bytecode to `" << SafeModuleBC << "'\nExiting.";
     exit(1);
   }
-  std::string SharedObject = compileSharedObject(SafeModuleBC);
+  std::string SharedObject = compileSharedObject(SafeModuleBC.toString());
   delete ToNotCodeGen;
 
   std::cout << "You can reproduce the problem with the command line: \n";
index 097dd61df1d5f518453edefbf61a534d5ec3158f..d141bd0dabe44be928bd9a9ff992ff29a78af49c 100644 (file)
@@ -22,6 +22,7 @@
 #include "llvm/Bytecode/WriteBytecodePass.h"
 #include "llvm/Target/TargetData.h"
 #include "llvm/Support/FileUtilities.h"
+#include "llvm/System/Path.h"
 #include <fstream>
 #include <unistd.h>
 #include <sys/types.h>
@@ -114,7 +115,9 @@ bool BugDriver::runPasses(const std::vector<const PassInfo*> &Passes,
                           std::string &OutputFilename, bool DeleteOutput,
                          bool Quiet) const{
   std::cout << std::flush;
-  OutputFilename = getUniqueFilename("bugpoint-output.bc");
+  sys::Path uniqueFilename("bugpoint-output.bc");
+  uniqueFilename.makeUnique();
+  OutputFilename = uniqueFilename.toString();
 
   pid_t child_pid;
   switch (child_pid = fork()) {