Add a version of unique_file that return just the file name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184206 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2013-06-18 17:01:00 +00:00
parent 21a78d149f
commit 8ee23f00c7
4 changed files with 19 additions and 20 deletions

View File

@ -509,6 +509,10 @@ error_code unique_file(const Twine &model, int &result_fd,
SmallVectorImpl<char> &result_path,
bool makeAbsolute = true, unsigned mode = 0600);
/// @brief Simpler version for clients that don't want an open file.
error_code unique_file(const Twine &Model, SmallVectorImpl<char> &ResultPath,
bool MakeAbsolute = true, unsigned Mode = 0600);
/// @brief Canonicalize path.
///
/// Sets result to the file system's idea of what path is. The result is always

View File

@ -18,8 +18,11 @@
#include <cctype>
#include <cstdio>
#include <cstring>
#ifdef __APPLE__
#if !defined(_MSC_VER) && !defined(__MINGW32__)
#include <unistd.h>
#else
#include <io.h>
#endif
namespace {
@ -622,6 +625,14 @@ bool is_relative(const Twine &path) {
namespace fs {
error_code unique_file(const Twine &Model, SmallVectorImpl<char> &ResultPath,
bool MakeAbsolute, unsigned Mode) {
int FD;
error_code Ret = unique_file(Model, FD, ResultPath, MakeAbsolute, Mode);
close(FD);
return Ret;
}
error_code make_absolute(SmallVectorImpl<char> &path) {
StringRef p(path.data(), path.size());

View File

@ -21,12 +21,6 @@
#include "llvm/Support/raw_ostream.h"
#include <fstream>
#if !defined(_MSC_VER) && !defined(__MINGW32__)
#include <unistd.h>
#else
#include <io.h>
#endif
using namespace llvm;
namespace {
@ -338,15 +332,13 @@ std::string BugDriver::executeProgram(const Module *Program,
// Check to see if this is a valid output filename...
SmallString<128> UniqueFile;
int UniqueFD;
error_code EC = sys::fs::unique_file(OutputFile, UniqueFD, UniqueFile);
error_code EC = sys::fs::unique_file(OutputFile, UniqueFile);
if (EC) {
errs() << ToolName << ": Error making unique filename: "
<< EC.message() << "\n";
exit(1);
}
OutputFile = UniqueFile.str();
close(UniqueFD);
// Figure out which shared objects to run, if any.
std::vector<std::string> SharedObjs(AdditionalSOs);

View File

@ -34,12 +34,6 @@
#include <fstream>
#if !defined(_MSC_VER) && !defined(__MINGW32__)
#include <unistd.h>
#else
#include <io.h>
#endif
using namespace llvm;
namespace llvm {
@ -130,16 +124,14 @@ bool BugDriver::runPasses(Module *Program,
// setup the output file name
outs().flush();
SmallString<128> UniqueFilename;
int UniqueFD;
error_code EC = sys::fs::unique_file(OutputPrefix + "-output-%%%%%%%.bc",
UniqueFD, UniqueFilename);
error_code EC =
sys::fs::unique_file(OutputPrefix + "-output-%%%%%%%.bc", UniqueFilename);
if (EC) {
errs() << getToolName() << ": Error making unique filename: "
<< EC.message() << "\n";
return 1;
}
OutputFilename = UniqueFilename.str();
close(UniqueFD); // We only want the filename.
// set up the input file name
SmallString<128> InputFilename;