No functional change intended.

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

gcc/ChangeLog:
        * diagnostic.cc (diagnostic_context::set_option_hooks): Add
        "lang_mask" param.
        * diagnostic.h (diagnostic_context::option_enabled_p): Update for
        move of m_lang_mask.
        (diagnostic_context::set_option_hooks): Add "lang_mask" param.
        (diagnostic_context::get_lang_mask): New.
        (diagnostic_context::m_lang_mask): Move into m_option_callbacks,
        thus making private.
        * lto-wrapper.cc (main): Update for new lang_mask param of
        set_option_hooks.
        * toplev.cc (init_asm_output): Use get_lang_mask.
        (general_init): Move initialization of global_dc's lang_mask to
        new lang_mask param of set_option_hooks.
---
 gcc/diagnostic.cc  |  4 +++-
 gcc/diagnostic.h   | 16 +++++++++++-----
 gcc/lto-wrapper.cc |  3 ++-
 gcc/toplev.cc      |  6 +++---
 4 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/gcc/diagnostic.cc b/gcc/diagnostic.cc
index eb0df6890564..b4ebcd29457c 100644
--- a/gcc/diagnostic.cc
+++ b/gcc/diagnostic.cc
@@ -423,12 +423,14 @@ diagnostic_context::
 set_option_hooks (diagnostic_option_enabled_cb option_enabled_cb,
                  void *option_state,
                  diagnostic_make_option_name_cb make_option_name_cb,
-                 diagnostic_make_option_url_cb make_option_url_cb)
+                 diagnostic_make_option_url_cb make_option_url_cb,
+                 unsigned lang_mask)
 {
   m_option_callbacks.m_option_enabled_cb = option_enabled_cb;
   m_option_callbacks.m_option_state = option_state;
   m_option_callbacks.m_make_option_name_cb = make_option_name_cb;
   m_option_callbacks.m_make_option_url_cb = make_option_url_cb;
+  m_option_callbacks.m_lang_mask = lang_mask;
 }
 
 void
diff --git a/gcc/diagnostic.h b/gcc/diagnostic.h
index db61b0e27477..dbf972d25875 100644
--- a/gcc/diagnostic.h
+++ b/gcc/diagnostic.h
@@ -506,7 +506,7 @@ public:
       return true;
     return m_option_callbacks.m_option_enabled_cb
       (option_index,
-       m_lang_mask,
+       m_option_callbacks.m_lang_mask,
        m_option_callbacks.m_option_state);
   }
 
@@ -532,7 +532,13 @@ public:
   set_option_hooks (diagnostic_option_enabled_cb option_enabled_cb,
                    void *option_state,
                    diagnostic_make_option_name_cb make_option_name_cb,
-                   diagnostic_make_option_url_cb make_option_url_cb);
+                   diagnostic_make_option_url_cb make_option_url_cb,
+                   unsigned lang_mask);
+
+  unsigned get_lang_mask () const
+  {
+    return m_option_callbacks.m_lang_mask;
+  }
 
 private:
   bool includes_seen_p (const line_map_ordinary *map);
@@ -673,6 +679,9 @@ private:
        is available.  May be passed 0 as well as the index of a
        particular option.  */
     diagnostic_make_option_url_cb m_make_option_url_cb;
+
+    /* A copy of lang_hooks.option_lang_mask ().  */
+    unsigned m_lang_mask;
   } m_option_callbacks;
 
   /* An optional hook for adding URLs to quoted text strings in
@@ -698,9 +707,6 @@ private:
   int m_lock;
 
 public:
-  /* A copy of lang_hooks.option_lang_mask ().  */
-  unsigned m_lang_mask;
-
   bool m_inhibit_notes_p;
 
   diagnostic_source_printing_options m_source_printing;
diff --git a/gcc/lto-wrapper.cc b/gcc/lto-wrapper.cc
index 7c76635ef213..7b01ecc2d889 100644
--- a/gcc/lto-wrapper.cc
+++ b/gcc/lto-wrapper.cc
@@ -2149,7 +2149,8 @@ main (int argc, char *argv[])
   global_dc->set_option_hooks (nullptr,
                               nullptr,
                               nullptr,
-                              get_option_url);
+                              get_option_url,
+                              0);
 
   if (atexit (lto_wrapper_cleanup) != 0)
     fatal_error (input_location, "%<atexit%> failed");
diff --git a/gcc/toplev.cc b/gcc/toplev.cc
index ae2f3d52602b..8c3fcd337bee 100644
--- a/gcc/toplev.cc
+++ b/gcc/toplev.cc
@@ -715,7 +715,7 @@ init_asm_output (const char *name)
                     "cannot open %qs for writing: %m", asm_file_name);
     }
 
-  if (!flag_syntax_only && !(global_dc->m_lang_mask & CL_LTODump))
+  if (!flag_syntax_only && !(global_dc->get_lang_mask () & CL_LTODump))
     {
       targetm.asm_out.file_start ();
 
@@ -1020,7 +1020,6 @@ general_init (const char *argv0, bool init_signals)
   /* Initialize the diagnostics reporting machinery, so option parsing
      can give warnings and errors.  */
   diagnostic_initialize (global_dc, N_OPTS);
-  global_dc->m_lang_mask = lang_hooks.option_lang_mask ();
   /* Set a default printer.  Language specific initializations will
      override it later.  */
   tree_diagnostics_defaults (global_dc);
@@ -1048,7 +1047,8 @@ general_init (const char *argv0, bool init_signals)
   global_dc->set_option_hooks (option_enabled,
                               &global_options,
                               option_name,
-                              get_option_url);
+                              get_option_url,
+                              lang_hooks.option_lang_mask ());
   global_dc->set_urlifier (make_gcc_urlifier ());
 
   if (init_signals)
-- 
2.26.3

Reply via email to