diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-08-25 18:16:47 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-08-25 18:16:47 +0000 |
commit | 3fd1e9933f4bb621ab6706b598830ff125fefe50 (patch) | |
tree | 4db6ed12f77a315b32b45962461944b0fbf2dfe5 /llvm/lib/Support | |
parent | b709222b8a579a121444485efaa71ea6944eda1d (diff) | |
download | bcm5719-llvm-3fd1e9933f4bb621ab6706b598830ff125fefe50.tar.gz bcm5719-llvm-3fd1e9933f4bb621ab6706b598830ff125fefe50.zip |
Modernize raw_fd_ostream's constructor a bit.
Take a StringRef instead of a "const char *".
Take a "std::error_code &" instead of a "std::string &" for error.
A create static method would be even better, but this patch is already a bit too
big.
llvm-svn: 216393
Diffstat (limited to 'llvm/lib/Support')
-rw-r--r-- | llvm/lib/Support/Timer.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/Support/ToolOutputFile.cpp | 15 | ||||
-rw-r--r-- | llvm/lib/Support/raw_ostream.cpp | 16 |
3 files changed, 15 insertions, 24 deletions
diff --git a/llvm/lib/Support/Timer.cpp b/llvm/lib/Support/Timer.cpp index 210bda754e7..e1a531a0af2 100644 --- a/llvm/lib/Support/Timer.cpp +++ b/llvm/lib/Support/Timer.cpp @@ -66,10 +66,10 @@ raw_ostream *llvm::CreateInfoOutputFile() { // each time -stats or -time-passes wants to print output to it. To // compensate for this, the test-suite Makefiles have code to delete the // info output file before running commands which write to it. - std::string Error; - raw_ostream *Result = new raw_fd_ostream( - OutputFilename.c_str(), Error, sys::fs::F_Append | sys::fs::F_Text); - if (Error.empty()) + std::error_code EC; + raw_ostream *Result = new raw_fd_ostream(OutputFilename, EC, + sys::fs::F_Append | sys::fs::F_Text); + if (!EC) return Result; errs() << "Error opening info-output-file '" diff --git a/llvm/lib/Support/ToolOutputFile.cpp b/llvm/lib/Support/ToolOutputFile.cpp index b5fb20f4b20..8ae977db6a1 100644 --- a/llvm/lib/Support/ToolOutputFile.cpp +++ b/llvm/lib/Support/ToolOutputFile.cpp @@ -16,8 +16,8 @@ #include "llvm/Support/Signals.h" using namespace llvm; -tool_output_file::CleanupInstaller::CleanupInstaller(const char *filename) - : Filename(filename), Keep(false) { +tool_output_file::CleanupInstaller::CleanupInstaller(StringRef Filename) + : Filename(Filename), Keep(false) { // Arrange for the file to be deleted if the process is killed. if (Filename != "-") sys::RemoveFileOnSignal(Filename); @@ -34,14 +34,13 @@ tool_output_file::CleanupInstaller::~CleanupInstaller() { sys::DontRemoveFileOnSignal(Filename); } -tool_output_file::tool_output_file(const char *filename, std::string &ErrorInfo, +tool_output_file::tool_output_file(StringRef Filename, std::error_code &EC, sys::fs::OpenFlags Flags) - : Installer(filename), OS(filename, ErrorInfo, Flags) { + : Installer(Filename), OS(Filename, EC, Flags) { // If open fails, no cleanup is needed. - if (!ErrorInfo.empty()) + if (EC) Installer.Keep = true; } -tool_output_file::tool_output_file(const char *Filename, int FD) - : Installer(Filename), OS(FD, true) { -} +tool_output_file::tool_output_file(StringRef Filename, int FD) + : Installer(Filename), OS(FD, true) {} diff --git a/llvm/lib/Support/raw_ostream.cpp b/llvm/lib/Support/raw_ostream.cpp index 0790be5305e..c2be517a6ad 100644 --- a/llvm/lib/Support/raw_ostream.cpp +++ b/llvm/lib/Support/raw_ostream.cpp @@ -426,20 +426,14 @@ void format_object_base::home() { // raw_fd_ostream //===----------------------------------------------------------------------===// -/// raw_fd_ostream - Open the specified file for writing. If an error -/// occurs, information about the error is put into ErrorInfo, and the -/// stream should be immediately destroyed; the string will be empty -/// if no error occurred. -raw_fd_ostream::raw_fd_ostream(const char *Filename, std::string &ErrorInfo, +raw_fd_ostream::raw_fd_ostream(StringRef Filename, std::error_code &EC, sys::fs::OpenFlags Flags) : Error(false), UseAtomicWrites(false), pos(0) { - assert(Filename && "Filename is null"); - ErrorInfo.clear(); - + EC = std::error_code(); // Handle "-" as stdout. Note that when we do this, we consider ourself // the owner of stdout. This means that we can do things like close the // file descriptor when we're done and set the "binary" flag globally. - if (Filename[0] == '-' && Filename[1] == 0) { + if (Filename == "-") { FD = STDOUT_FILENO; // If user requested binary then put stdout into binary mode if // possible. @@ -450,11 +444,9 @@ raw_fd_ostream::raw_fd_ostream(const char *Filename, std::string &ErrorInfo, return; } - std::error_code EC = sys::fs::openFileForWrite(Filename, FD, Flags); + EC = sys::fs::openFileForWrite(Filename, FD, Flags); if (EC) { - ErrorInfo = "Error opening output file '" + std::string(Filename) + "': " + - EC.message(); ShouldClose = false; return; } |