diff --git a/include/llvm/Support/raw_ostream.h b/include/llvm/Support/raw_ostream.h index 5ab0988d3ee..af53477cea3 100644 --- a/include/llvm/Support/raw_ostream.h +++ b/include/llvm/Support/raw_ostream.h @@ -1,4 +1,4 @@ -//===--- raw_ostream.h - Raw output stream --------------------------------===// +//===--- raw_ostream.h - Raw output stream ----------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // @@ -152,9 +152,10 @@ class raw_fd_ostream : public raw_ostream { int FD; bool ShouldClose; public: - /// 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. + /// 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(const char *Filename, std::string &ErrorInfo); /// raw_fd_ostream ctor - FD is the file descriptor that this writes to. If diff --git a/lib/Support/raw_ostream.cpp b/lib/Support/raw_ostream.cpp index 008f85603ee..f3a53a50617 100644 --- a/lib/Support/raw_ostream.cpp +++ b/lib/Support/raw_ostream.cpp @@ -196,10 +196,13 @@ 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. +/// 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) { + ErrorInfo.clear(); + // Handle "-" as stdout. if (Filename[0] == '-' && Filename[1] == 0) { FD = STDOUT_FILENO;