[llvm-commits] [llvm] r99721 - /llvm/trunk/tools/llvm-ld/llvm-ld.cpp

Chris Lattner sabre at nondot.org
Sat Mar 27 11:01:10 PDT 2010


Author: lattner
Date: Sat Mar 27 13:01:10 2010
New Revision: 99721

URL: http://llvm.org/viewvc/llvm-project?rev=99721&view=rev
Log:
revert r99719 which is breaking the botz.

Modified:
    llvm/trunk/tools/llvm-ld/llvm-ld.cpp

Modified: llvm/trunk/tools/llvm-ld/llvm-ld.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-ld/llvm-ld.cpp?rev=99721&r1=99720&r2=99721&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-ld/llvm-ld.cpp (original)
+++ llvm/trunk/tools/llvm-ld/llvm-ld.cpp Sat Mar 27 13:01:10 2010
@@ -30,7 +30,6 @@
 #include "llvm/Target/TargetData.h"
 #include "llvm/Target/TargetMachine.h"
 #include "llvm/Support/CommandLine.h"
-#include "llvm/Support/FileUtilities.h"
 #include "llvm/Support/ManagedStatic.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/PrettyStackTrace.h"
@@ -125,10 +124,6 @@
 /// everywhere.
 static std::string progname;
 
-/// FileRemover objects to clean up output files in the event of an error.
-static FileRemover OutputRemover;
-static FileRemover BitcodeOutputRemover;
-
 /// PrintAndExit - Prints a message to standard error and exits with error code
 ///
 /// Inputs:
@@ -241,6 +236,10 @@
   if (!ErrorInfo.empty())
     PrintAndExit(ErrorInfo, M);
 
+  // Ensure that the bitcode file gets removed from the disk if we get a
+  // terminating signal.
+  sys::RemoveFileOnSignal(sys::Path(FileName));
+
   // Write it out
   WriteBitcodeToFile(M, Out);
 }
@@ -583,17 +582,8 @@
     if (!LinkAsLibrary) BitcodeOutputFilename += ".bc";
   }
 
-  // Arrange for the bitcode output file to be deleted on any errors.
-  BitcodeOutputRemover = FileRemover(sys::Path(BitcodeOutputFilename));
-  sys::RemoveFileOnSignal(sys::Path(BitcodeOutputFilename));
-
-  // Generate the bitcode output.
   GenerateBitcode(Composite.get(), BitcodeOutputFilename);
 
-  // Arrange for the output file to be deleted on any errors.
-  OutputRemover = FileRemover(sys::Path(OutputFilename));
-  sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-
   // If we are not linking a library, generate either a native executable
   // or a JIT shell script, depending upon what the user wants.
   if (!LinkAsLibrary) {
@@ -646,6 +636,7 @@
 
       // Mark the output files for removal if we get an interrupt.
       sys::RemoveFileOnSignal(AssemblyFile);
+      sys::RemoveFileOnSignal(sys::Path(OutputFilename));
 
       // Determine the locations of the llc and gcc programs.
       sys::Path llc = FindExecutable("llc", argv[0],
@@ -675,6 +666,7 @@
 
       // Mark the output files for removal if we get an interrupt.
       sys::RemoveFileOnSignal(CFile);
+      sys::RemoveFileOnSignal(sys::Path(OutputFilename));
 
       // Determine the locations of the llc and gcc programs.
       sys::Path llc = FindExecutable("llc", argv[0],
@@ -715,10 +707,6 @@
       PrintAndExit(ErrMsg, Composite.get());
   }
 
-  // Operations which may fail are now complete.
-  OutputRemover.releaseFile();
-  BitcodeOutputRemover.releaseFile();
-
   // Graceful exit
   return 0;
 }





More information about the llvm-commits mailing list