]> granicus.if.org Git - clang/commitdiff
Add TextDiagnosticBuffer::FlushDiagnostics, for forwarding the buffered diagnostics...
authorDaniel Dunbar <daniel@zuster.org>
Mon, 30 Nov 2009 08:41:34 +0000 (08:41 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Mon, 30 Nov 2009 08:41:34 +0000 (08:41 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90125 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Frontend/TextDiagnosticBuffer.h
lib/Frontend/TextDiagnosticBuffer.cpp

index 4e907e1965ea2c0171ce82f0b27606d3d3083a7c..380a1dd224af3965f58a9516e2967fa081f13ea4 100644 (file)
@@ -41,6 +41,10 @@ public:
 
   virtual void HandleDiagnostic(Diagnostic::Level DiagLevel,
                                 const DiagnosticInfo &Info);
+
+  /// FlushDiagnostics - Flush the buffered diagnostics to an given
+  /// diagnostic engine.
+  void FlushDiagnostics(Diagnostic &Diags) const;
 };
 
 } // end namspace clang
index 07a281e3c7f2d431a18dc153f9fbd6ec0daa2b77..fdf2ec8ccf5d016b64b4d15c4536ac08d134e3ee 100644 (file)
@@ -36,3 +36,13 @@ void TextDiagnosticBuffer::HandleDiagnostic(Diagnostic::Level Level,
     break;
   }
 }
+
+void TextDiagnosticBuffer::FlushDiagnostics(Diagnostic &Diags) const {
+  // FIXME: Flush the diagnostics in order.
+  for (const_iterator it = err_begin(), ie = err_end(); it != ie; ++it)
+    Diags.Report(Diags.getCustomDiagID(Diagnostic::Error, it->second.c_str()));
+  for (const_iterator it = warn_begin(), ie = warn_end(); it != ie; ++it)
+    Diags.Report(Diags.getCustomDiagID(Diagnostic::Warning,it->second.c_str()));
+  for (const_iterator it = note_begin(), ie = note_end(); it != ie; ++it)
+    Diags.Report(Diags.getCustomDiagID(Diagnostic::Note, it->second.c_str()));
+}