No functional change intended.

Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to trunk as r14-5112-gae8abcb81ed814.

gcc/ChangeLog:
        * diagnostic.cc (diagnostic_initialize): Update for consolidation
        of group-based fields.
        (diagnostic_report_diagnostic): Likewise.
        (diagnostic_context::begin_group): New, based on body of
        auto_diagnostic_group's ctor.
        (diagnostic_context::end_group): New, based on body of
        auto_diagnostic_group's dtor.
        (auto_diagnostic_group::auto_diagnostic_group): Convert to a call
        to begin_group.
        (auto_diagnostic_group::~auto_diagnostic_group): Convert to a call
        to end_group.
        * diagnostic.h (diagnostic_context::begin_group): New decl.
        (diagnostic_context::end_group): New decl.
        (diagnostic_context::diagnostic_group_nesting_depth): Rename to...
        (diagnostic_context::m_diagnostic_groups.m_nesting_depth):
        ...this.
        (diagnostic_context::diagnostic_group_emission_count): Rename
        to...
        (diagnostic_context::m_diagnostic_groups::m_emission_count):
        ...this.
---
 gcc/diagnostic.cc | 42 ++++++++++++++++++++++++++++--------------
 gcc/diagnostic.h  | 19 ++++++++++++++-----
 2 files changed, 42 insertions(+), 19 deletions(-)

diff --git a/gcc/diagnostic.cc b/gcc/diagnostic.cc
index 0f392358aef..0759fae916e 100644
--- a/gcc/diagnostic.cc
+++ b/gcc/diagnostic.cc
@@ -218,8 +218,8 @@ diagnostic_initialize (diagnostic_context *context, int 
n_opts)
   context->tabstop = 8;
   context->escape_format = DIAGNOSTICS_ESCAPE_FORMAT_UNICODE;
   context->edit_context_ptr = NULL;
-  context->diagnostic_group_nesting_depth = 0;
-  context->diagnostic_group_emission_count = 0;
+  context->m_diagnostic_groups.m_nesting_depth = 0;
+  context->m_diagnostic_groups.m_emission_count = 0;
   context->m_output_format = new diagnostic_text_output_format (*context);
   context->set_locations_cb = nullptr;
   context->ice_handler_cb = NULL;
@@ -1570,9 +1570,9 @@ diagnostic_report_diagnostic (diagnostic_context *context,
     ++diagnostic_kind_count (context, diagnostic->kind);
 
   /* Is this the initial diagnostic within the stack of groups?  */
-  if (context->diagnostic_group_emission_count == 0)
+  if (context->m_diagnostic_groups.m_emission_count == 0)
     context->m_output_format->on_begin_group ();
-  context->diagnostic_group_emission_count++;
+  context->m_diagnostic_groups.m_emission_count++;
 
   pp_format (context->printer, &diagnostic->message);
   context->m_output_format->on_begin_diagnostic (diagnostic);
@@ -2296,28 +2296,42 @@ fancy_abort (const char *file, int line, const char 
*function)
   internal_error ("in %s, at %s:%d", function, trim_filename (file), line);
 }
 
+/* struct diagnostic_context.  */
+
+void
+diagnostic_context::begin_group ()
+{
+  m_diagnostic_groups.m_nesting_depth++;
+}
+
+void
+diagnostic_context::end_group ()
+{
+  if (--m_diagnostic_groups.m_nesting_depth == 0)
+    {
+      /* Handle the case where we've popped the final diagnostic group.
+        If any diagnostics were emitted, give the context a chance
+        to do something.  */
+      if (m_diagnostic_groups.m_emission_count > 0)
+       m_output_format->on_end_group ();
+      m_diagnostic_groups.m_emission_count = 0;
+    }
+}
+
 /* class auto_diagnostic_group.  */
 
 /* Constructor: "push" this group into global_dc.  */
 
 auto_diagnostic_group::auto_diagnostic_group ()
 {
-  global_dc->diagnostic_group_nesting_depth++;
+  global_dc->begin_group ();
 }
 
 /* Destructor: "pop" this group from global_dc.  */
 
 auto_diagnostic_group::~auto_diagnostic_group ()
 {
-  if (--global_dc->diagnostic_group_nesting_depth == 0)
-    {
-      /* Handle the case where we've popped the final diagnostic group.
-        If any diagnostics were emitted, give the context a chance
-        to do something.  */
-      if (global_dc->diagnostic_group_emission_count > 0)
-       global_dc->m_output_format->on_end_group ();
-      global_dc->diagnostic_group_emission_count = 0;
-    }
+  global_dc->end_group ();
 }
 
 /* class diagnostic_text_output_format : public diagnostic_output_format.  */
diff --git a/gcc/diagnostic.h b/gcc/diagnostic.h
index a2c8740cbd0..ed1b6c0c7b1 100644
--- a/gcc/diagnostic.h
+++ b/gcc/diagnostic.h
@@ -226,6 +226,12 @@ public:
    the context of a diagnostic message.  */
 struct diagnostic_context
 {
+public:
+  void begin_group ();
+  void end_group ();
+
+public:
+
   /* Where most of the diagnostic formatting work is done.  */
   pretty_printer *printer;
 
@@ -443,12 +449,15 @@ struct diagnostic_context
      applied, for generating patches.  */
   edit_context *edit_context_ptr;
 
-  /* How many diagnostic_group instances are currently alive.  */
-  int diagnostic_group_nesting_depth;
+  /* Fields relating to diagnostic groups.  */
+  struct {
+    /* How many diagnostic_group instances are currently alive.  */
+    int m_nesting_depth;
 
-  /* How many diagnostics have been emitted since the bottommost
-     diagnostic_group was pushed.  */
-  int diagnostic_group_emission_count;
+    /* How many diagnostics have been emitted since the bottommost
+       diagnostic_group was pushed.  */
+    int m_emission_count;
+  } m_diagnostic_groups;
 
   /* How to output diagnostics (text vs a structured format such as JSON).
      Must be non-NULL; owned by context.  */
-- 
2.26.3

Reply via email to