gcc/ChangeLog:
        * gcc-rich-location.c (cpp_string_fragment_location::debug): New.
        (cpp_string_location::debug): New.
---
 gcc/gcc-rich-location.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gcc/gcc-rich-location.c b/gcc/gcc-rich-location.c
index 003e8f0..ae0b3bb 100644
--- a/gcc/gcc-rich-location.c
+++ b/gcc/gcc-rich-location.c
@@ -190,3 +190,29 @@ gcc_rich_location::expand_caption_va (diagnostic_context 
*context,
   pp_clear_output_area (pp);
   return result;
 }
+
+/* Debugging method.  Print a diagnostic showing the given fragment.  */
+
+void
+cpp_string_fragment_location::debug (const char *msg) const
+{
+  rich_location richloc (get_covered_range ());
+  inform_at_rich_loc (&richloc, "%s", msg);
+}
+
+/* Debugging method.  Print diagnostic showings the fragment(s) that make
+   up the cpp_string_location.  */
+
+void
+cpp_string_location::debug () const
+{
+  char buf[64];
+  for (unsigned int i = 0; i < m_num_fraglocs; i++)
+    {
+      cpp_string_fragment_location *fragment = &m_fragloc_array[i];
+      snprintf (buf, sizeof (buf),
+               "fragment %i; %i cols per char",
+               i, fragment->m_cols_per_char);
+      fragment->debug (buf);
+    }
+}
-- 
1.8.5.3

Reply via email to