revert r99719 which is breaking the botz.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99721 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2010-03-27 18:01:10 +00:00
parent 00ad278500
commit 46475cb08e

View File

@ -30,7 +30,6 @@
#include "llvm/Target/TargetData.h" #include "llvm/Target/TargetData.h"
#include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetMachine.h"
#include "llvm/Support/CommandLine.h" #include "llvm/Support/CommandLine.h"
#include "llvm/Support/FileUtilities.h"
#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/PrettyStackTrace.h" #include "llvm/Support/PrettyStackTrace.h"
@ -125,10 +124,6 @@ static cl::opt<std::string> CO9("m", cl::Hidden,
/// everywhere. /// everywhere.
static std::string progname; 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 /// PrintAndExit - Prints a message to standard error and exits with error code
/// ///
/// Inputs: /// Inputs:
@ -241,6 +236,10 @@ void GenerateBitcode(Module* M, const std::string& FileName) {
if (!ErrorInfo.empty()) if (!ErrorInfo.empty())
PrintAndExit(ErrorInfo, M); 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 // Write it out
WriteBitcodeToFile(M, Out); WriteBitcodeToFile(M, Out);
} }
@ -583,17 +582,8 @@ int main(int argc, char **argv, char **envp) {
if (!LinkAsLibrary) BitcodeOutputFilename += ".bc"; 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); 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 // If we are not linking a library, generate either a native executable
// or a JIT shell script, depending upon what the user wants. // or a JIT shell script, depending upon what the user wants.
if (!LinkAsLibrary) { if (!LinkAsLibrary) {
@ -646,6 +636,7 @@ int main(int argc, char **argv, char **envp) {
// Mark the output files for removal if we get an interrupt. // Mark the output files for removal if we get an interrupt.
sys::RemoveFileOnSignal(AssemblyFile); sys::RemoveFileOnSignal(AssemblyFile);
sys::RemoveFileOnSignal(sys::Path(OutputFilename));
// Determine the locations of the llc and gcc programs. // Determine the locations of the llc and gcc programs.
sys::Path llc = FindExecutable("llc", argv[0], sys::Path llc = FindExecutable("llc", argv[0],
@ -675,6 +666,7 @@ int main(int argc, char **argv, char **envp) {
// Mark the output files for removal if we get an interrupt. // Mark the output files for removal if we get an interrupt.
sys::RemoveFileOnSignal(CFile); sys::RemoveFileOnSignal(CFile);
sys::RemoveFileOnSignal(sys::Path(OutputFilename));
// Determine the locations of the llc and gcc programs. // Determine the locations of the llc and gcc programs.
sys::Path llc = FindExecutable("llc", argv[0], sys::Path llc = FindExecutable("llc", argv[0],
@ -715,10 +707,6 @@ int main(int argc, char **argv, char **envp) {
PrintAndExit(ErrMsg, Composite.get()); PrintAndExit(ErrMsg, Composite.get());
} }
// Operations which may fail are now complete.
OutputRemover.releaseFile();
BitcodeOutputRemover.releaseFile();
// Graceful exit // Graceful exit
return 0; return 0;
} }