formatted_tool_output_file::close needs to flush its buffer before
authorDan Gohman <gohman@apple.com>
Mon, 23 Aug 2010 18:43:24 +0000 (18:43 +0000)
committerDan Gohman <gohman@apple.com>
Mon, 23 Aug 2010 18:43:24 +0000 (18:43 +0000)
closing the underlying stream.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111822 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/FormattedStream.h

index 03cde412cd4f4798fc9fc4ccb5f7fc8413709403..db02580323f6d1fd890d0cd51102a700894751d1 100644 (file)
@@ -164,7 +164,12 @@ namespace llvm
     void keep()            { return get_tool_output_file().keep(); }
     bool has_error() const { return get_tool_output_file().has_error(); }
     void clear_error()     { return get_tool_output_file().clear_error(); }
-    void close()           { return get_tool_output_file().close(); }
+    void close() {
+      // The inner stream is unbuffered; flush the outer stream's buffer.
+      flush();
+      // The inner stream can close its file descriptor now.
+      return get_tool_output_file().close();
+    }
   };
 
 /// fouts() - This returns a reference to a formatted_raw_ostream for