https://gcc.gnu.org/g:c990667996ff79cc5be6c898621811eeed4ad0a4
commit r15-2464-gc990667996ff79cc5be6c898621811eeed4ad0a4 Author: David Malcolm <dmalc...@redhat.com> Date: Wed Jul 31 20:38:40 2024 -0400 diagnostics: SARIF output: eliminate some uses of "line_table" global No functional change intended. gcc/ChangeLog: * diagnostic-format-sarif.cc (sarif_builder::sarif_builder): Assert that m_line_maps is nonnull. (diagnostic_output_format_init_sarif_stderr): Add "line_maps" param and pass to format ctor. (diagnostic_output_format_init_sarif_file): Likewise. (diagnostic_output_format_init_sarif_stream): Likewise. * diagnostic.cc (diagnostic_output_format_init): Pass "line_table" as line_maps param to the above. * diagnostic.h (diagnostic_output_format_init_sarif_stderr): Add "line_maps" param. (diagnostic_output_format_init_sarif_file): Likewise. (diagnostic_output_format_init_sarif_stream): Likewise. Signed-off-by: David Malcolm <dmalc...@redhat.com> Diff: --- gcc/diagnostic-format-sarif.cc | 14 +++++++++++--- gcc/diagnostic.cc | 2 ++ gcc/diagnostic.h | 3 +++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/gcc/diagnostic-format-sarif.cc b/gcc/diagnostic-format-sarif.cc index 5900b9ea9b75..2232883281bf 100644 --- a/gcc/diagnostic-format-sarif.cc +++ b/gcc/diagnostic-format-sarif.cc @@ -1302,6 +1302,8 @@ sarif_builder::sarif_builder (diagnostic_context &context, m_tabstop (context.m_tabstop), m_formatted (formatted) { + gcc_assert (m_line_maps); + /* Mark MAIN_INPUT_FILENAME_ as the artifact that the tool was instructed to scan. Only quote the contents if it gets referenced by physical locations, @@ -2988,13 +2990,15 @@ diagnostic_output_format_init_sarif (diagnostic_context &context) void diagnostic_output_format_init_sarif_stderr (diagnostic_context &context, + const line_maps *line_maps, const char *main_input_filename_, bool formatted) { + gcc_assert (line_maps); diagnostic_output_format_init_sarif (context); context.set_output_format (new sarif_stream_output_format (context, - line_table, + line_maps, main_input_filename_, formatted, stderr)); @@ -3005,14 +3009,16 @@ diagnostic_output_format_init_sarif_stderr (diagnostic_context &context, void diagnostic_output_format_init_sarif_file (diagnostic_context &context, + const line_maps *line_maps, const char *main_input_filename_, bool formatted, const char *base_file_name) { + gcc_assert (line_maps); diagnostic_output_format_init_sarif (context); context.set_output_format (new sarif_file_output_format (context, - line_table, + line_maps, main_input_filename_, formatted, base_file_name)); @@ -3022,14 +3028,16 @@ diagnostic_output_format_init_sarif_file (diagnostic_context &context, void diagnostic_output_format_init_sarif_stream (diagnostic_context &context, + const line_maps *line_maps, const char *main_input_filename_, bool formatted, FILE *stream) { + gcc_assert (line_maps); diagnostic_output_format_init_sarif (context); context.set_output_format (new sarif_stream_output_format (context, - line_table, + line_maps, main_input_filename_, formatted, stream)); diff --git a/gcc/diagnostic.cc b/gcc/diagnostic.cc index 46cddfe94d1d..71d2f44e40c8 100644 --- a/gcc/diagnostic.cc +++ b/gcc/diagnostic.cc @@ -1857,12 +1857,14 @@ diagnostic_output_format_init (diagnostic_context &context, case DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR: diagnostic_output_format_init_sarif_stderr (context, + line_table, main_input_filename_, json_formatting); break; case DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE: diagnostic_output_format_init_sarif_file (context, + line_table, main_input_filename_, json_formatting, base_file_name); diff --git a/gcc/diagnostic.h b/gcc/diagnostic.h index 36a4c23b0737..79386ccbf856 100644 --- a/gcc/diagnostic.h +++ b/gcc/diagnostic.h @@ -1115,13 +1115,16 @@ extern void diagnostic_output_format_init_json_file (diagnostic_context &context bool formatted, const char *base_file_name); extern void diagnostic_output_format_init_sarif_stderr (diagnostic_context &context, + const line_maps *line_maps, const char *main_input_filename_, bool formatted); extern void diagnostic_output_format_init_sarif_file (diagnostic_context &context, + const line_maps *line_maps, const char *main_input_filename_, bool formatted, const char *base_file_name); extern void diagnostic_output_format_init_sarif_stream (diagnostic_context &context, + const line_maps *line_maps, const char *main_input_filename_, bool formatted, FILE *stream);