[llvm-commits] [llvm] r53930 - in /llvm/trunk/tools/lto-bugpoint: LTOBugPoint.cpp LTOBugPoint.h

Devang Patel dpatel at apple.com
Tue Jul 22 13:03:46 PDT 2008


Author: dpatel
Date: Tue Jul 22 15:03:45 2008
New Revision: 53930

URL: http://llvm.org/viewvc/llvm-project?rev=53930&view=rev
Log:
Remove temp. files in the end.


Modified:
    llvm/trunk/tools/lto-bugpoint/LTOBugPoint.cpp
    llvm/trunk/tools/lto-bugpoint/LTOBugPoint.h

Modified: llvm/trunk/tools/lto-bugpoint/LTOBugPoint.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/lto-bugpoint/LTOBugPoint.cpp?rev=53930&r1=53929&r2=53930&view=diff

==============================================================================
--- llvm/trunk/tools/lto-bugpoint/LTOBugPoint.cpp (original)
+++ llvm/trunk/tools/lto-bugpoint/LTOBugPoint.cpp Tue Jul 22 15:03:45 2008
@@ -14,7 +14,6 @@
 
 #include "LTOBugPoint.h"
 #include "llvm/PassManager.h"
-#include "llvm/Module.h"
 #include "llvm/ModuleProvider.h"
 #include "llvm/CodeGen/FileWriters.h"
 #include "llvm/Target/SubtargetFeature.h"
@@ -26,7 +25,6 @@
 #include "llvm/Support/SystemUtils.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/System/Path.h"
 #include "llvm/Config/config.h"
 #include <fstream>
 #include <iostream>
@@ -46,6 +44,12 @@
   std::string inFile;
   while(getline(ins, inFile))
     LinkerInputFiles.push_back(inFile);
+
+  TempDir = sys::Path::GetTemporaryDirectory();
+}
+
+LTOBugPoint::~LTOBugPoint() {
+  TempDir.eraseFromDisk(true);
 }
 
 /// findTroubleMakers - Find minimum set of input files that causes error
@@ -178,21 +182,27 @@
   M.reset(ParseBitcodeFile(Buffer, &ErrMsg));
   std::string TargetTriple = M->getTargetTriple();
 
-  sys::Path AsmFile(sys::Path::GetTemporaryDirectory());
+  sys::Path AsmFile(TempDir);
   if(AsmFile.createTemporaryFileOnDisk(false, &ErrMsg))
     return false;
 
-  if (assembleBitcode(M.get(), AsmFile.c_str()) == false)
+  if (assembleBitcode(M.get(), AsmFile.c_str()) == false) {
+    AsmFile.eraseFromDisk();
     return false;
+  }
 
-  sys::Path NativeFile(sys::Path::GetTemporaryDirectory());
-  if(NativeFile.createTemporaryFileOnDisk(false, &ErrMsg))
+  sys::Path NativeFile(TempDir);
+  if(NativeFile.createTemporaryFileOnDisk(false, &ErrMsg)) {
+    AsmFile.eraseFromDisk();
     return false;
+  }
 
   // find compiler driver
   const sys::Path gcc = sys::Program::FindProgramByName("gcc");
   if ( gcc.isEmpty() ) {
     ErrMsg = "can't locate gcc";
+    AsmFile.eraseFromDisk();
+    NativeFile.eraseFromDisk();
     return false;
   }
 
@@ -227,8 +237,12 @@
   
   // invoke assembler
   if (sys::Program::ExecuteAndWait(gcc, &args[0], 0, 0, 0, 0, &ErrMsg)) {
-    ErrMsg = "error in assembly";    
+    ErrMsg = "error in assembly";
+    AsmFile.eraseFromDisk();
+    NativeFile.eraseFromDisk();
     return false;
   }
+
+  AsmFile.eraseFromDisk();
   return true;
 }

Modified: llvm/trunk/tools/lto-bugpoint/LTOBugPoint.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/lto-bugpoint/LTOBugPoint.h?rev=53930&r1=53929&r2=53930&view=diff

==============================================================================
--- llvm/trunk/tools/lto-bugpoint/LTOBugPoint.h (original)
+++ llvm/trunk/tools/lto-bugpoint/LTOBugPoint.h Tue Jul 22 15:03:45 2008
@@ -14,6 +14,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Module.h"
+#include "llvm/System/Path.h"
 #include <string>
 #include <fstream>
 
@@ -21,6 +22,7 @@
  public:
 
   LTOBugPoint(std::istream &args, std::istream &ins);
+  ~LTOBugPoint();
 
   /// findTroubleMakers - Find minimum set of input files that causes error
   /// identified by the script.
@@ -50,6 +52,7 @@
   std::string getFeatureString(const char *TargetTriple);
   std::string ErrMsg;
 
+  llvm::sys::Path TempDir;
 private:
   /// assembleBitcode - Generate assembly code from the module. Return false
   /// in case of an error.





More information about the llvm-commits mailing list