]> git.ipfire.org Git - thirdparty/gcc.git/commit
diagnostics: fix <title> of experimental-html output [PR116792]
authorDavid Malcolm <dmalcolm@redhat.com>
Mon, 9 Jun 2025 13:40:06 +0000 (09:40 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Mon, 9 Jun 2025 13:43:11 +0000 (09:43 -0400)
commit82de4cada8669639a8474808db48d63ffade2bcb
treea164a1af27d99a19d1a1ae9e2c8f3caff69762cf
parentaf3de9e20968c8fb0f5b950e4b0753a28a1d1dc3
diagnostics: fix <title> of experimental-html output [PR116792]

Add a new vfunc diagnostic_output_format::set_main_input_filename
so that we can separate setting the <title> of HTML output and
the diagnostic_artifact_role::analysis_target of SARIF output from
creation of the sinks.  Calling it is done by the various creators
of the sinks.

gcc/ChangeLog:
PR other/116792
* diagnostic-format-html.cc (html_builder::m_title_element): New
field.
(html_builder::html_builder): Initialize it.  Don't add
placeholder text.
(html_builder::set_main_input_filename): New.
(html_output_format::set_main_input_filename): New.
(test_html_diagnostic_context::test_html_diagnostic_context): Call
set_main_input_filename on the new sink.
(seldtest::test_simple_log): Update expected <title> text.
* diagnostic-format-json.cc (diagnostic_output_format_init_json):
Return a reference to the new sink.
(diagnostic_output_format_init_json_stderr): Likewise.
(diagnostic_output_format_init_json_file): Likewise.
* diagnostic-format-sarif.cc (sarif_builder::sarif_builder): Drop
"main_input_filename_" param, and move adding an artifact for it
with diagnostic_artifact_role::analysis_target to...
(sarif_builder::set_main_input_filename): ...this new function.
(sarif_output_format::set_main_input_filename): New.
(sarif_output_format::sarif_output_format): Drop
"main_input_filename_" param.
(sarif_stream_output_format::sarif_stream_output_format):
Likewise.
(sarif_file_output_format::sarif_file_output_format): Likewise.
(diagnostic_output_format_init_sarif): Return a reference to *FMT.
(diagnostic_output_format_init_sarif_stderr): Return a refererence
to the new sink.  Drop "main_input_filename_" param.
(diagnostic_output_format_init_sarif_file): Likewise.
(diagnostic_output_format_init_sarif_stream): Likewise.
(make_sarif_sink): Drop "main_input_filename_" param.
(selftest::test_sarif_diagnostic_context::test_sarif_diagnostic_context):
Likewise.  Call set_main_input_filename on the new format.
(selftest::test_sarif_diagnostic_context::buffered_output_format::buffered_output_format):
Drop "main_input_filename_" param.
(selftest::test_make_location_object): Likewise.
* diagnostic-format-sarif.h
(diagnostic_output_format_init_sarif_stderr): Return a refererence
to the new sink.  Drop "main_input_filename_" param.
(diagnostic_output_format_init_sarif_file): Likewise.
(diagnostic_output_format_init_sarif_stream): Likewise.
(make_sarif_sink): Drop "main_input_filename_" param.
* diagnostic-format.h
(diagnostic_output_format::set_main_input_filename): New vfunc.
(diagnostic_output_format_init_json_stderr): Return a refererence
to the new sink.
(diagnostic_output_format_init_json_file): Likewise.
* diagnostic.cc (diagnostic_output_format_init): Likewise.  Call
set_main_input_filename on the new sink.
* libgdiagnostics.cc (sarif_sink::sarif_sink): Update for above
changes.
* opts-diagnostic.cc (sarif_scheme_handler::make_sink): Likewise.
(handle_OPT_fdiagnostics_add_output_): Likewise.
(handle_OPT_fdiagnostics_set_output_): Likewise.

gcc/testsuite/ChangeLog:
PR other/116792
* gcc.dg/html-output/missing-semicolon.py: Update expected <title>
text.  Drop out-of-date comment.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/diagnostic-format-html.cc
gcc/diagnostic-format-json.cc
gcc/diagnostic-format-sarif.cc
gcc/diagnostic-format-sarif.h
gcc/diagnostic-format.h
gcc/diagnostic.cc
gcc/libgdiagnostics.cc
gcc/opts-diagnostic.cc
gcc/testsuite/gcc.dg/html-output/missing-semicolon.py