diff options
-rw-r--r-- | gcc/pretty-print.cc | 23 | ||||
-rw-r--r-- | gcc/pretty-print.h | 6 |
2 files changed, 29 insertions, 0 deletions
diff --git a/gcc/pretty-print.cc b/gcc/pretty-print.cc index 68c145e..6a1d1ec 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 b5ded5c..ec64a16 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; |