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);

Reply via email to