[pushed:,r15-3973] diagnostics: add "dump" to pretty_printer and output_buffer
Checks
Commit Message
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(+)
@@ -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
@@ -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;