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