David Malcolm 7da682c896 diagnostics: convert text hooks to use diagnostic_text_output_format [PR116613]
The diagnostic_starter and diagnostic_finalizer callbacks and most of
their support subroutines are only used by the "text" output format.

Emphasize this and reduce the binding with diagnostic_context
by renaming the callbacks to add "_text" in their names, and converting
the first param from diagnostic_context * to
diagnostic_text_output_output &.  Update the various subroutines used
by diagnostic starter/finalizer callbacks to also take a
diagnostic_text_output_output & rather than a diagnostic_context *.
Move m_includes and m_last_seen from the context to the text output.

Use the text_output's get_printer () rather than the context's
m_printer, which should ease the transition to multiple output sinks.

No functional change intended.

gcc/c-family/ChangeLog:
	PR other/116613
	* c-opts.cc: Include "diagnostic-format-text.h".
	(c_diagnostic_finalizer): Rename to...
	(c_diagnostic_text_finalizer): ...this.  Convert first param
	from diagnostic_context * to diagnostic_text_output_format & and
	update accordingly.
	(c_common_diagnostics_set_defaults): Update for renamings.

gcc/ChangeLog:
	PR other/116613
	* coretypes.h (class diagnostic_text_output_format): Add forward
	decl.
	* diagnostic-format-json.cc
	(json_output_format::after_diagnostic): New.
	* diagnostic-format-sarif.cc
	(sarif_output_format::after_diagnostic): New.
	* diagnostic-format-text.cc: Use pragmas to ignore -Wformat-diag.
	(diagnostic_text_output_format::~diagnostic_text_output_format):
	Use get_printer.  Clean up m_includes_seen here, rather than
	in ~diagnostic_context.
	(diagnostic_text_output_format::on_report_diagnostic):  Use
	get_printer.  Update for callback renamings and pass *this
	to them, rather than &m_context.
	(diagnostic_text_output_format::after_diagnostic): New.
	(diagnostic_text_output_format::includes_seen_p): Move here
	from diagnostic_context/diagnostic.cc.
	(diagnostic_text_output_format::get_location_text): New.
	(maybe_line_and_column): Move here from diagnostic.cc and make
	non-static.
	(diagnostic_text_output_format::report_current_module): Move
	here from diagnostic_context/diagnostic.cc.
	(default_diagnostic_text_starter): Move here from diagnostic.cc,
	renaming from default_diagnostic_starter.
	(default_diagnostic_text_finalizer): Likewise, renaming from
	default_diagnostic_finalizer.
	* diagnostic-format-text.h
	(diagnostic_text_output_format::diagnostic_text_output_format):
	Initialize m_last_module and m_includes_seen.
	(diagnostic_text_output_format::after_diagnostic): New decl.
	(diagnostic_text_output_format::build_prefix): New decl.
	(diagnostic_text_output_format::report_current_module): New decl.
	(diagnostic_text_output_format::append_note): New decl.
	(diagnostic_text_output_format::file_name_as_prefix): New decl.
	(diagnostic_text_output_format::print_path): New decl.
	(diagnostic_text_output_format::show_column_p): New decl.
	(diagnostic_text_output_format::get_location_text): New decl.
	(diagnostic_text_output_format::includes_seen_p): New decl.
	(diagnostic_text_output_format::show_any_path): New decl.
	(diagnostic_text_output_format::m_last_module): New field.
	(diagnostic_text_output_format::m_includes_seen): New field.
	* diagnostic-format.h
	(diagnostic_output_format::after_diagnostic): New vfunc.
	(diagnostic_output_format::get_context): New.
	(diagnostic_output_format::get_diagram_theme): New.
	* diagnostic-macro-unwinding.cc: Include
	"diagnostic-format-text.h".
	(maybe_unwind_expanded_macro_loc): Convert first param from
	diagnostic_context * to diagnostic_text_output_format & and update
	accordingly.
	(virt_loc_aware_diagnostic_finalizer): Likewise.
	* diagnostic-macro-unwinding.h
	(virt_loc_aware_diagnostic_finalizer): Likewise.
	(maybe_unwind_expanded_macro_loc): Likewise.
	* diagnostic-path.cc: Include "diagnostic-format-text.h".
	(path_label::path_label): Drop "ctxt" param and add "colorize"
	and "allow_emojis" params.  Update initializations.
	(path_label::get_text): Use m_colorize rather than querying
	m_ctxt.m_printer.  Use m_allow_emojis rather than querying
	m_ctxt's diagram theme.
	(path_label::m_ctxt): Drop field.
	(path_label::m_colorize): Drop field.
	(path_label::m_allow_emojis): Drop field.
	(event_range::event_range): Drop param "ctxt".  Add params
	"colorize_labels" and "allow_emojis".
	(event_range::print): Convert first param from
	diagnostic_context & to diagnostic_text_output_format & and update
	accordingly.
	(path_summary::path_summary): Likewise.
	(path_summary::print_swimlane_for_event_range): Likewise.
	(print_path_summary_as_text): Likewise for 3rd param.
	(diagnostic_context::print_path): Convert to...
	(diagnostic_text_output_format::print_path): ...this.
	(selftest::test_empty_path): Update to use a
	diagnostic_text_output_format.
	(selftest::test_intraprocedural_path): Likewise.
	(selftest::test_interprocedural_path_1): Likewise.
	(selftest::test_interprocedural_path_2): Likewise.
	(selftest::test_recursion): Likewise.
	(selftest::test_control_flow_1): Likewise.
	(selftest::test_control_flow_2): Likewise.
	(selftest::test_control_flow_3): Likewise.
	(selftest::assert_cfg_edge_path_streq): Likewise.
	(selftest::test_control_flow_5): Likewise.
	(selftest::test_control_flow_6): Likewise.
	* diagnostic.cc (file_name_as_prefix): Convert to...
	(diagnostic_text_output_format::file_name_as_prefix): ...this.
	(diagnostic_context::initialize): Update for renamings.
	Move m_last_module and m_includes_seen into text output.
	(diagnostic_context::finish): Likewise.
	(diagnostic_context::get_location_text): Add "colorize" param.
	(diagnostic_build_prefix): Convert to...
	(diagnostic_text_output_format::build_prefix): ...this.
	(diagnostic_context::includes_seen_p): Move from here to
	diagnostic_text_output_format/diagnostic-format-text.cc.
	(diagnostic_context::report_current_module): Likewise.
	(diagnostic_context::show_any_path): Convert to...
	(diagnostic_text_output_format::show_any_path): ...this.
	(default_diagnostic_starter): Rename and move to
	diagnostic-format-text.cc.
	(default_diagnostic_start_span_fn): Pass colorize bool
	to get_location_text.
	(default_diagnostic_finalizer): Rename and move to
	diagnostic-format-text.cc.
	(diagnostic_context::report_diagnostic): Replace call to
	show_any_path with call to new output format "after_diagnostic"
	vfunc, moving show_any_path call to the text output format.
	(diagnostic_append_note): Convert to...
	(diagnostic_text_output_format::append_note): ...this.
	(selftest::assert_location_text): Pass in false for colorization.
	* diagnostic.h (diagnostic_starter_fn): Rename to...
	(diagnostic_text_starter_fn): ...this.  Convert first param from
	diagnostic_context * to diagnostic_text_output_format &.
	(diagnostic_finalizer_fn, diagnostic_text_finalizer_fn): Likewise.
	(diagnostic_context): Update friends for renamings.
	(diagnostic_context::report_current_module): Move to text output
	format.
	(diagnostic_context::get_location_text): Add "colorize" bool.
	(diagnostic_context::includes_seen_p): Move to text output format.
	(diagnostic_context::show_any_path): Likewise.
	(diagnostic_context::print_path): Likewise.
	(diagnostic_context::m_text_callbacks): Update for renamings.
	(diagnostic_context::m_last_module): Move to text output format.
	(diagnostic_context::m_includes_seen): Likewise.
	(diagnostic_starter): Rename to...
	(diagnostic_text_starter): ...this and update return type.
	(diagnostic_finalizer): Rename to...
	(diagnostic_text_finalizer): ...this and update return type.
	(diagnostic_report_current_module): Drop decl in favor of a member
	function of diagnostic_text_output_format.
	(diagnostic_append_note): Likewise.
	(default_diagnostic_starter): Rename to...
	(default_diagnostic_text_starter): ...this, updating type.
	(default_diagnostic_finalizer): Rename to...
	(default_diagnostic_text_finalizer): ...this, updating type.
	(file_name_as_prefix): Drop decl.
	* langhooks-def.h (lhd_print_error_function): Convert first param
	from diagnostic_context * to diagnostic_text_output_format &.
	* langhooks.cc: Include "diagnostic-format-text.h".
	(lhd_print_error_function): Likewise.  Update accordingly
	* langhooks.h (lang_hooks::print_error_function): Convert first
	param from diagnostic_context * to
	diagnostic_text_output_format &.
	* tree-diagnostic.cc: Include "diagnostic-format-text.h".
	(diagnostic_report_current_function): Convert first param from
	diagnostic_context * to diagnostic_text_output_format & and update
	accordingly.
	(default_tree_diagnostic_starter): Rename to...
	(default_tree_diagnostic_text_starter): ...this.  Convert first
	param from diagnostic_context * to diagnostic_text_output_format &
	and update accordingly.
	(tree_diagnostics_defaults): Update for renamings.

gcc/cp/ChangeLog:
	PR other/116613
	* cp-tree.h (cxx_print_error_function): Convert first param
	from diagnostic_context * to diagnostic_text_output_format &.
	* error.cc: Include "diagnostic-format-text.h".
	(cxx_initialize_diagnostics): Update for renamings.
	(cxx_print_error_function): Convert first param from
	diagnostic_context * to diagnostic_text_output_format & and update
	accordingly
	(cp_diagnostic_starter): Rename to...
	(cp_diagnostic_text_starter): ...this.  Convert first
	param from diagnostic_context * to diagnostic_text_output_format &
	and update accordingly.
	(cp_print_error_function): Likewise.
	(print_instantiation_full_context): Likewise.
	(print_instantiation_partial_context_line): Likewise.
	(print_instantiation_partial_context): Likewise.
	(maybe_print_instantiation_context): Likewise.
	(maybe_print_constexpr_context): Likewise.
	(print_location): Likewise.
	(print_constrained_decl_info): Likewise.
	(print_concept_check_info): Likewise.
	(print_constraint_context_head): Likewise.
	(print_requires_expression_info): Likewise.
	(maybe_print_single_constraint_context): Likewise.

gcc/fortran/ChangeLog:
	PR other/116613
	* error.cc: Include "diagnostic-format-text.h".
	(gfc_diagnostic_starter): Rename to...
	(gfc_diagnostic_text_starter): ...this.  Convert first
	param from diagnostic_context * to diagnostic_text_output_format &
	and update accordingly.
	(gfc_diagnostic_finalizer, gfc_diagnostic_text_finalizer):
	Likewise.
	(gfc_diagnostics_init): Update for renamings.
	(gfc_diagnostics_finish): Likewise.

gcc/jit/ChangeLog:
	PR other/116613
	* dummy-frontend.cc: Include "diagnostic-format-text.h".
	(jit_begin_diagnostic): Convert first param from
	diagnostic_context * to diagnostic_text_output_format &
	(jit_end_diagnostic): Likewise.  Update accordingly.
	(jit_langhook_init): Update for renamings.

gcc/rust/ChangeLog:
	PR other/116613
	* resolve/rust-ast-resolve-expr.cc
	(funny_ice_finalizer): : Convert first param from
	diagnostic_context * to diagnostic_text_output_format &.
	(ResolveExpr::visit): Update for renaming.

gcc/testsuite/ChangeLog:
	PR other/116613
	* g++.dg/plugin/show_template_tree_color_plugin.c
	(noop_starter_fn): Rename to...
	(noop_text_starter_fn): ...this.  Update first param from dc to
	text_output.
	(plugin_init): Update for renamings.
	* gcc.dg/plugin/diagnostic_group_plugin.c
	(test_diagnostic_starter): Rename to...
	(test_diagnostic_text_starter): ...this.  Update first param from
	dc to text_output.
	(plugin_init): Update for renaming.
	* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c: Include
	"diagnostic-format-text.h".
	(custom_diagnostic_finalizer): Rename to...
	(custom_diagnostic_text_finalizer): ...this.  Update first param
	from dc to text_output.
	(test_show_locus): Update for renamings.
	* gcc.dg/plugin/location_overflow_plugin.c: Include
	"diagnostic-format-text.h".
	(original_finalizer): Rename to...
	(original_text_finalizer): ...this and update type.
	(verify_unpacked_ranges): Update first param from dc to
	text_output.  Update for this and for renamings.
	(verify_no_columns): Likewise.
	(plugin_init): Update for renamings.

libcc1/ChangeLog:
	PR other/116613
	* context.cc: Include "diagnostic-format-text.h".
	(plugin_print_error_function): Update first param from
	diagnostic_context * to diagnostic_text_output_format &.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
2024-09-20 18:51:55 -04:00
2024-05-09 10:58:01 +00:00
2024-04-17 00:18:45 +00:00
2024-09-19 00:18:55 +00:00
2024-07-12 00:17:52 +00:00
2024-07-08 00:17:01 +00:00
2024-04-16 00:18:06 +00:00
2024-09-20 17:36:00 +00:00
2024-01-03 12:19:35 +01:00
2024-09-03 00:21:29 +00:00
2024-08-06 00:17:19 +00:00
2024-09-20 17:36:00 +00:00
2024-04-03 00:17:29 +00:00
2024-07-02 00:17:36 +00:00
2024-08-28 00:19:45 +00:00
2024-09-08 00:17:46 +00:00
2024-05-30 00:16:44 +00:00
2024-04-29 11:39:58 -07:00
2024-09-20 17:36:00 +00:00
2024-08-02 00:18:55 +00:00
2024-09-08 00:17:46 +00:00
2024-09-03 00:21:29 +00:00
2024-09-01 00:25:25 +00:00
2024-09-03 00:21:29 +00:00
2024-08-29 00:19:25 +00:00
2024-09-06 00:19:10 +00:00
2024-05-09 10:58:01 +00:00
2024-09-03 00:21:29 +00:00
2024-08-24 00:18:13 +00:00
2024-07-20 00:17:53 +00:00
2023-10-23 00:16:43 +00:00
2024-09-12 22:51:00 +08:00
2024-09-19 00:18:55 +00:00
2024-09-18 11:51:45 -06:00
2024-09-18 11:51:45 -06:00

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.
Description
No description provided
Readme 2.7 GiB
Languages
C++ 30.7%
C 30.1%
Ada 14.4%
D 6.1%
Go 5.7%
Other 12.5%