ToolOutputFile.cpp [plain text]
#include "llvm/Support/ToolOutputFile.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Signals.h"
using namespace llvm;
tool_output_file::CleanupInstaller::CleanupInstaller(StringRef Filename)
: Filename(Filename), Keep(false) {
if (Filename != "-")
sys::RemoveFileOnSignal(Filename);
}
tool_output_file::CleanupInstaller::~CleanupInstaller() {
if (!Keep && Filename != "-")
sys::fs::remove(Filename);
if (Filename != "-")
sys::DontRemoveFileOnSignal(Filename);
}
tool_output_file::tool_output_file(StringRef Filename, std::error_code &EC,
sys::fs::OpenFlags Flags)
: Installer(Filename), OS(Filename, EC, Flags) {
if (EC)
Installer.Keep = true;
}
tool_output_file::tool_output_file(StringRef Filename, int FD)
: Installer(Filename), OS(FD, true) {}