No functional change intended.

Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to trunk as r16-1714-g5bf213d4ad648f.

gcc/ChangeLog:
        * diagnostic-output-spec.cc (sarif_scheme_handler::make_sink):
        Split out creation of sarif_generation_options and
        sarif_serialization_format into...
        (sarif_scheme_handler::make_sarif_gen_opts): ...this...
        (sarif_scheme_handler::make_sarif_serialization_object): ...and
        this.

Signed-off-by: David Malcolm <dmalc...@redhat.com>
---
 gcc/diagnostic-output-spec.cc | 43 ++++++++++++++++++++++++++---------
 1 file changed, 32 insertions(+), 11 deletions(-)

diff --git a/gcc/diagnostic-output-spec.cc b/gcc/diagnostic-output-spec.cc
index e58f0c40fc01..25ef86f5f224 100644
--- a/gcc/diagnostic-output-spec.cc
+++ b/gcc/diagnostic-output-spec.cc
@@ -179,6 +179,14 @@ public:
             diagnostic_context &dc,
             const char *unparsed_arg,
             const scheme_name_and_params &parsed_arg) const final override;
+
+private:
+  static sarif_generation_options
+  make_sarif_gen_opts (enum sarif_version version,
+                      bool xml_state);
+
+  static std::unique_ptr<sarif_serialization_format>
+  make_sarif_serialization_object (enum sarif_serialization_kind);
 };
 
 class html_scheme_handler : public output_factory::scheme_handler
@@ -505,27 +513,40 @@ sarif_scheme_handler::make_sink (const context &ctxt,
   if (!output_file)
     return nullptr;
 
+  auto sarif_gen_opts = make_sarif_gen_opts (version, xml_state);
+
+  auto serialization_obj = make_sarif_serialization_object 
(serialization_kind);
+
+  auto sink = make_sarif_sink (dc,
+                              *ctxt.get_affected_location_mgr (),
+                              std::move (serialization_obj),
+                              sarif_gen_opts,
+                              std::move (output_file));
+  return sink;
+}
+
+sarif_generation_options
+sarif_scheme_handler::make_sarif_gen_opts (enum sarif_version version,
+                                          bool xml_state)
+{
   sarif_generation_options sarif_gen_opts;
   sarif_gen_opts.m_version = version;
   sarif_gen_opts.m_xml_state = xml_state;
+  return sarif_gen_opts;
+}
 
-  std::unique_ptr<sarif_serialization_format> serialization_obj;
-  switch (serialization_kind)
+std::unique_ptr<sarif_serialization_format>
+sarif_scheme_handler::
+make_sarif_serialization_object (enum sarif_serialization_kind kind)
+{
+  switch (kind)
     {
     default:
       gcc_unreachable ();
     case sarif_serialization_kind::json:
-      serialization_obj
-       = std::make_unique<sarif_serialization_format_json> (true);
+      return std::make_unique<sarif_serialization_format_json> (true);
       break;
     }
-
-  auto sink = make_sarif_sink (dc,
-                              *ctxt.get_affected_location_mgr (),
-                              std::move (serialization_obj),
-                              sarif_gen_opts,
-                              std::move (output_file));
-  return sink;
 }
 
 /* class html_scheme_handler : public output_factory::scheme_handler.  */
-- 
2.26.3

Reply via email to