diff options
author | David Malcolm <dmalcolm@redhat.com> | 2024-12-10 18:31:24 -0500 |
---|---|---|
committer | David Malcolm <dmalcolm@redhat.com> | 2024-12-10 18:37:57 -0500 |
commit | f102b82d3da6dd4d5f9af1cd622fce93d0c494eb (patch) | |
tree | 8dde65106ab0f97a6da367849ab7a6c2fd39609c /gcc | |
parent | 5fba71a88f3826ffbdd7fab0116b154b1af22ace (diff) | |
download | gcc-f102b82d3da6dd4d5f9af1cd622fce93d0c494eb.zip gcc-f102b82d3da6dd4d5f9af1cd622fce93d0c494eb.tar.gz gcc-f102b82d3da6dd4d5f9af1cd622fce93d0c494eb.tar.bz2 |
sarif-replay: fix missing URLs [PR117944]
gcc/ChangeLog:
PR other/117944
* libsarifreplay.cc (sarif_replayer::handle_result_obj): Get any
helpUri from the rule_obj and pass it to add_rule.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/libsarifreplay.cc | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/libsarifreplay.cc b/gcc/libsarifreplay.cc index 9a053f7..e8b5a55 100644 --- a/gcc/libsarifreplay.cc +++ b/gcc/libsarifreplay.cc @@ -1004,7 +1004,20 @@ sarif_replayer::handle_result_obj (const json::object &result_obj, libgdiagnostics::group g (m_output_mgr); auto err (m_output_mgr.begin_diagnostic (level)); if (rule_id) - err.add_rule (rule_id->get_string (), nullptr); + { + const char *url = nullptr; + if (rule_obj) + { + /* rule_obj should be a reportingDescriptor object (3.49). + Get any ยง3.49.12 helpUri property. */ + const property_spec_ref prop_help_uri + ("reportingDescriptor", "helpUri", "3.49.12"); + if (auto url_val = get_optional_property<json::string>(*rule_obj, + prop_help_uri)) + url = url_val->get_string (); + } + err.add_rule (rule_id->get_string (), url); + } err.set_location (physical_loc); err.set_logical_location (logical_loc); if (path.m_inner) |