diff mbox series

[pushed] diagnostics: SARIF output: eliminate some uses of "line_table" global

Message ID 20240801005046.1003813-1-dmalcolm@redhat.com
State New
Headers show
Series [pushed] diagnostics: SARIF output: eliminate some uses of "line_table" global | expand

Commit Message

David Malcolm Aug. 1, 2024, 12:50 a.m. UTC
No functional change intended.

Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Successful run of analyzer integration tests on x86_64-pc-linux-gnu.
Pushed to trunk as r15-2464-gc990667996ff79.

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 <dmalcolm@redhat.com>
---
 gcc/diagnostic-format-sarif.cc | 14 +++++++++++---
 gcc/diagnostic.cc              |  2 ++
 gcc/diagnostic.h               |  3 +++
 3 files changed, 16 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/gcc/diagnostic-format-sarif.cc b/gcc/diagnostic-format-sarif.cc
index 5900b9ea9b7..2232883281b 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 46cddfe94d1..71d2f44e40c 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 36a4c23b073..79386ccbf85 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);