Allow TextDiagnosticPrinter to have optional ownership of its output stream.

llvm-svn: 86823
diff --git a/clang/lib/Frontend/TextDiagnosticPrinter.cpp b/clang/lib/Frontend/TextDiagnosticPrinter.cpp
index 4f8c804..6ab0e16 100644
--- a/clang/lib/Frontend/TextDiagnosticPrinter.cpp
+++ b/clang/lib/Frontend/TextDiagnosticPrinter.cpp
@@ -39,9 +39,16 @@
 const unsigned WordWrapIndentation = 6;
 
 TextDiagnosticPrinter::TextDiagnosticPrinter(llvm::raw_ostream &os,
-                                             const DiagnosticOptions &diags)
+                                             const DiagnosticOptions &diags,
+                                             bool _OwnsOutputStream)
   : OS(os), LangOpts(0), DiagOpts(&diags),
-    LastCaretDiagnosticWasNote(false) {
+    LastCaretDiagnosticWasNote(0),
+    OwnsOutputStream(_OwnsOutputStream) {
+}
+
+TextDiagnosticPrinter::~TextDiagnosticPrinter() {
+  if (OwnsOutputStream)
+    delete &OS;
 }
 
 void TextDiagnosticPrinter::