]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
diagnostics: add "dump" to pretty_printer and output_buffer
authorDavid Malcolm <dmalcolm@redhat.com>
Mon, 30 Sep 2024 15:48:28 +0000 (11:48 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Mon, 30 Sep 2024 15:48:28 +0000 (11:48 -0400)
No functional change intended.

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
gcc/pretty-print.h

index 68c145e2d532537d640d23c2a846c358eac1eb51..6a1d1ec484baabc1e2509a8a72ad1f2a14d1c284 100644 (file)
@@ -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
index b5ded5cdd5e0967061eafd715da2bac5c700601b..ec64a167327bf36f54effac4441e3e17101b0065 100644 (file)
@@ -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;