aboutsummaryrefslogtreecommitdiff
path: root/gcc/analyzer/infinite-recursion.cc
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2024-04-10 16:43:29 -0400
committerDavid Malcolm <dmalcolm@redhat.com>2024-04-10 16:43:29 -0400
commit960e07d73a5295adf059053907bcb395115606d2 (patch)
tree62a79d526bb3070e4718c541df50c68512069c41 /gcc/analyzer/infinite-recursion.cc
parent7a49d5dc0ef345fb2cb19a242272c973ead220e7 (diff)
downloadgcc-960e07d73a5295adf059053907bcb395115606d2.zip
gcc-960e07d73a5295adf059053907bcb395115606d2.tar.gz
gcc-960e07d73a5295adf059053907bcb395115606d2.tar.bz2
analyzer: add SARIF property bag to -Wanalyzer-infinite-recursion
gcc/analyzer/ChangeLog: * infinite-recursion.cc: Include "diagnostic-format-sarif.h". (infinite_recursion_diagnostic::maybe_add_sarif_properties): New. Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Diffstat (limited to 'gcc/analyzer/infinite-recursion.cc')
-rw-r--r--gcc/analyzer/infinite-recursion.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/analyzer/infinite-recursion.cc b/gcc/analyzer/infinite-recursion.cc
index 112e4bd..65f136d 100644
--- a/gcc/analyzer/infinite-recursion.cc
+++ b/gcc/analyzer/infinite-recursion.cc
@@ -62,6 +62,7 @@ along with GCC; see the file COPYING3. If not see
#include "make-unique.h"
#include "analyzer/checker-path.h"
#include "analyzer/feasible-graph.h"
+#include "diagnostic-format-sarif.h"
/* A subclass of pending_diagnostic for complaining about suspected
infinite recursion. */
@@ -236,6 +237,18 @@ public:
return false;
}
+ void maybe_add_sarif_properties (sarif_object &result_obj)
+ const final override
+ {
+ sarif_property_bag &props = result_obj.get_or_create_properties ();
+#define PROPERTY_PREFIX "gcc/analyzer/infinite_recursion_diagnostic/"
+ props.set_integer (PROPERTY_PREFIX "prev_entry_enode",
+ m_prev_entry_enode->m_index);
+ props.set_integer (PROPERTY_PREFIX "new_entry_enode",
+ m_new_entry_enode->m_index);
+#undef PROPERTY_PREFIX
+ }
+
private:
/* Return true iff control flow along FEDGE was affected by
a conjured_svalue. */