diff mbox series

[pushed:,r15-3973] diagnostics: add "dump" to pretty_printer and output_buffer

Message ID 20240930160303.2857103-1-dmalcolm@redhat.com
State New
Headers show
Series [pushed:,r15-3973] diagnostics: add "dump" to pretty_printer and output_buffer | expand

Commit Message

David Malcolm Sept. 30, 2024, 4:03 p.m. UTC
No functional change intended.

Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to trunk as r15-3973-g4c7a58ac2617e2.

gcc/ChangeLog:
	* pretty-print.cc (output_buffer::dump): New.
	(pretty_printer::dump): New.
	* pretty-print.h (output_buffer::dump): New decls.
	(pretty_printer::dump): New decls.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
---
 gcc/pretty-print.cc | 23 +++++++++++++++++++++++
 gcc/pretty-print.h  |  6 ++++++
 2 files changed, 29 insertions(+)
diff mbox series

Patch

diff --git a/gcc/pretty-print.cc b/gcc/pretty-print.cc
index 998e06e155f7..2b865212ac55 100644
--- a/gcc/pretty-print.cc
+++ b/gcc/pretty-print.cc
@@ -790,6 +790,21 @@  output_buffer::pop_formatted_chunks ()
   obstack_free (&m_chunk_obstack, old_top);
 }
 
+/* Dump state of this output_buffer to OUT, for debugging.  */
+
+void
+output_buffer::dump (FILE *out) const
+{
+  int depth = 0;
+  for (pp_formatted_chunks *iter = m_cur_formatted_chunks;
+       iter;
+       iter = iter->m_prev, depth++)
+    {
+      fprintf (out, "pp_formatted_chunks: depth %i\n", depth);
+      iter->dump (out);
+    }
+}
+
 #ifndef PTRDIFF_MAX
 #define PTRDIFF_MAX INTTYPE_MAXIMUM (ptrdiff_t)
 #endif
@@ -3013,6 +3028,14 @@  pretty_printer::end_url ()
     pp_string (this, get_end_url_string (this));
 }
 
+/* Dump state of this pretty_printer to OUT, for debugging.  */
+
+void
+pretty_printer::dump (FILE *out) const
+{
+  m_buffer->dump (out);
+}
+
 /* class pp_markup::context.  */
 
 void
diff --git a/gcc/pretty-print.h b/gcc/pretty-print.h
index b5ded5cdd5e0..ec64a167327b 100644
--- a/gcc/pretty-print.h
+++ b/gcc/pretty-print.h
@@ -93,6 +93,9 @@  public:
   pp_formatted_chunks *push_formatted_chunks ();
   void pop_formatted_chunks ();
 
+  void dump (FILE *out) const;
+  void DEBUG_FUNCTION dump () const { dump (stderr); }
+
   /* Obstack where the text is built up.  */
   struct obstack m_formatted_obstack;
 
@@ -313,6 +316,9 @@  public:
   void set_real_maximum_length ();
   int remaining_character_count_for_line ();
 
+  void dump (FILE *out) const;
+  void DEBUG_FUNCTION dump () const { dump (stderr); }
+
 private:
   /* Where we print external representation of ENTITY.  */
   output_buffer *m_buffer;