No functional change intended.
Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to trunk as r16-1716-gc4d211bba2a86b.
gcc/ada/ChangeLog:
* gcc-interface/misc.cc (gnat_init): Use
diagnostic_context::set_internal_error_callback.
gcc/c-family/ChangeLog:
* c-opts.cc (c_common_diagnostics_set_defaults): Use
diagnostic_context::set_permissive_option.
gcc/cp/ChangeLog:
* error.cc (cxx_initialize_diagnostics): Use
diagnostic_context::set_adjust_diagnostic_info_callback.
gcc/ChangeLog:
* diagnostic.h (diagnostic_context::set_permissive_option): New.
(diagnostic_context::set_fatal_errors): New.
(diagnostic_context::set_internal_error_callback): New.
(diagnostic_context::set_adjust_diagnostic_info_callback): New.
(diagnostic_context::inhibit_notes): New.
(diagnostic_context::m_opt_permissive): Make private.
(diagnostic_context::m_fatal_errors): Likewise.
(diagnostic_context::m_internal_error): Likewise.
(diagnostic_context::m_adjust_diagnostic_info): Likewise.
(diagnostic_context::m_inhibit_notes_p): Likewise.
(diagnostic_inhibit_notes): Delete.
* opts.cc (common_handle_option): Use
diagnostic_context::set_fatal_errors.
* toplev.cc (internal_error_function): Use
diagnostic_context::set_internal_error_callback.
(general_init): Likewise.
(process_options): Use diagnostic_context::inhibit_notes.
Signed-off-by: David Malcolm <[email protected]>
---
gcc/ada/gcc-interface/misc.cc | 2 +-
gcc/c-family/c-opts.cc | 2 +-
gcc/cp/error.cc | 2 +-
gcc/diagnostic.h | 43 +++++++++++++++++++++++++++--------
gcc/opts.cc | 2 +-
gcc/toplev.cc | 6 ++---
6 files changed, 40 insertions(+), 17 deletions(-)
diff --git a/gcc/ada/gcc-interface/misc.cc b/gcc/ada/gcc-interface/misc.cc
index ca5c9a2163ee..128040e4d90d 100644
--- a/gcc/ada/gcc-interface/misc.cc
+++ b/gcc/ada/gcc-interface/misc.cc
@@ -377,7 +377,7 @@ gnat_init (void)
line_table->default_range_bits = 0;
/* Register our internal error function. */
- global_dc->m_internal_error = &internal_error_function;
+ global_dc->set_internal_error_callback (&internal_error_function);
return true;
}
diff --git a/gcc/c-family/c-opts.cc b/gcc/c-family/c-opts.cc
index 697518637df3..3ee9444cbefe 100644
--- a/gcc/c-family/c-opts.cc
+++ b/gcc/c-family/c-opts.cc
@@ -192,7 +192,7 @@ void
c_common_diagnostics_set_defaults (diagnostic_context *context)
{
diagnostic_text_finalizer (context) = c_diagnostic_text_finalizer;
- context->m_opt_permissive = OPT_fpermissive;
+ context->set_permissive_option (OPT_fpermissive);
}
/* Input charset configuration for diagnostics. */
diff --git a/gcc/cp/error.cc b/gcc/cp/error.cc
index 69da381a355b..abeb0285eec6 100644
--- a/gcc/cp/error.cc
+++ b/gcc/cp/error.cc
@@ -308,7 +308,7 @@ cxx_initialize_diagnostics (diagnostic_context *context)
diagnostic_text_starter (context) = cp_diagnostic_text_starter;
/* diagnostic_finalizer is already c_diagnostic_text_finalizer. */
context->set_format_decoder (cp_printer);
- context->m_adjust_diagnostic_info = cp_adjust_diagnostic_info;
+ context->set_adjust_diagnostic_info_callback (cp_adjust_diagnostic_info);
}
/* Dump an '@module' name suffix for DECL, if it's attached to an import. */
diff --git a/gcc/diagnostic.h b/gcc/diagnostic.h
index f9c8253395b9..9df429275f0b 100644
--- a/gcc/diagnostic.h
+++ b/gcc/diagnostic.h
@@ -842,6 +842,36 @@ public:
void set_main_input_filename (const char *filename);
+ void
+ set_permissive_option (diagnostic_option_id opt_permissive)
+ {
+ m_opt_permissive = opt_permissive;
+ }
+
+ void
+ set_fatal_errors (bool fatal_errors)
+ {
+ m_fatal_errors = fatal_errors;
+ }
+
+ void
+ set_internal_error_callback (void (*cb) (diagnostic_context *,
+ const char *,
+ va_list *))
+ {
+ m_internal_error = cb;
+ }
+
+ void
+ set_adjust_diagnostic_info_callback (void (*cb) (diagnostic_context *,
+ diagnostic_info *))
+ {
+ m_adjust_diagnostic_info = cb;
+ }
+
+ void
+ inhibit_notes () { m_inhibit_notes_p = true; }
+
private:
void error_recursion () ATTRIBUTE_NORETURN;
@@ -911,6 +941,7 @@ public:
/* True if permerrors are warnings. */
bool m_permissive;
+private:
/* The option to associate with turning permerrors into warnings,
if any. */
diagnostic_option_id m_opt_permissive;
@@ -918,6 +949,7 @@ public:
/* True if errors are fatal. */
bool m_fatal_errors;
+public:
/* True if all warnings should be disabled. */
bool m_inhibit_warnings;
@@ -949,7 +981,6 @@ private:
diagnostic_text_finalizer_fn m_end_diagnostic;
} m_text_callbacks;
-public:
/* Client hook to report an internal error. */
void (*m_internal_error) (diagnostic_context *, const char *, va_list *);
@@ -957,7 +988,6 @@ public:
about to issue, such as its kind. */
void (*m_adjust_diagnostic_info)(diagnostic_context *, diagnostic_info *);
-private:
/* Owned by the context; this would be a std::unique_ptr if
diagnostic_context had a proper ctor. */
diagnostic_option_manager *m_option_mgr;
@@ -984,9 +1014,9 @@ public:
private:
int m_lock;
-public:
bool m_inhibit_notes_p;
+public:
diagnostic_source_printing_options m_source_printing;
private:
@@ -1083,13 +1113,6 @@ private:
diagnostic_buffer *m_diagnostic_buffer;
};
-inline void
-diagnostic_inhibit_notes (diagnostic_context * context)
-{
- context->m_inhibit_notes_p = true;
-}
-
-
/* Client supplied function to announce a diagnostic
(for text-based diagnostic output). */
inline diagnostic_text_starter_fn &
diff --git a/gcc/opts.cc b/gcc/opts.cc
index a9b9b9148a95..4e39b9591522 100644
--- a/gcc/opts.cc
+++ b/gcc/opts.cc
@@ -2872,7 +2872,7 @@ common_handle_option (struct gcc_options *opts,
break;
case OPT_Wfatal_errors:
- dc->m_fatal_errors = value;
+ dc->set_fatal_errors (value);
break;
case OPT_Wstack_usage_:
diff --git a/gcc/toplev.cc b/gcc/toplev.cc
index 7e457b5168b4..00a8ccb7a692 100644
--- a/gcc/toplev.cc
+++ b/gcc/toplev.cc
@@ -1029,7 +1029,7 @@ internal_error_reentered (diagnostic_context *, const
char *, va_list *)
static void
internal_error_function (diagnostic_context *, const char *, va_list *)
{
- global_dc->m_internal_error = internal_error_reentered;
+ global_dc->set_internal_error_callback (internal_error_reentered);
warn_if_plugins ();
emergency_dump_function ();
}
@@ -1091,7 +1091,7 @@ general_init (const char *argv0, bool init_signals,
unique_argv original_argv)
= global_options_init.x_flag_show_column;
global_dc->set_show_highlight_colors
(global_options_init.x_flag_diagnostics_show_highlight_colors);
- global_dc->m_internal_error = internal_error_function;
+ global_dc->set_internal_error_callback (internal_error_function);
const unsigned lang_mask = lang_hooks.option_lang_mask ();
global_dc->set_option_manager
(std::make_unique<compiler_diagnostic_option_manager> (*global_dc,
@@ -1289,7 +1289,7 @@ process_options ()
/* Avoid any informative notes in the second run of -fcompare-debug. */
if (flag_compare_debug)
- diagnostic_inhibit_notes (global_dc);
+ global_dc->inhibit_notes ();
if (flag_section_anchors && !target_supports_section_anchors_p ())
{
--
2.26.3