aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2024-12-10 18:31:24 -0500
committerDavid Malcolm <dmalcolm@redhat.com>2024-12-10 18:37:57 -0500
commitf102b82d3da6dd4d5f9af1cd622fce93d0c494eb (patch)
tree8dde65106ab0f97a6da367849ab7a6c2fd39609c /gcc
parent5fba71a88f3826ffbdd7fab0116b154b1af22ace (diff)
downloadgcc-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.cc15
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)