aboutsummaryrefslogtreecommitdiff
path: root/gcc/analyzer/infinite-recursion.cc
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2023-09-15 13:47:42 -0400
committerDavid Malcolm <dmalcolm@redhat.com>2023-09-15 13:47:42 -0400
commit759a1a52ea615df707f569246e5e15b5f12a2307 (patch)
tree18978569286287869c42613d533cad82e1cb4a8a /gcc/analyzer/infinite-recursion.cc
parent6319b5b2d4669077e4ddf1e249eeb5602394693c (diff)
downloadgcc-759a1a52ea615df707f569246e5e15b5f12a2307.zip
gcc-759a1a52ea615df707f569246e5e15b5f12a2307.tar.gz
gcc-759a1a52ea615df707f569246e5e15b5f12a2307.tar.bz2
analyzer: introduce pending_location
No functional change intended. gcc/analyzer/ChangeLog: * analyzer.h (struct pending_location): New forward decl. * diagnostic-manager.cc (saved_diagnostic::saved_diagnostic): Replace params "enode", "snode", "stmt", and "stmt_finder" with "ploc". (diagnostic_manager::add_diagnostic): Likewise for both overloads. * diagnostic-manager.h (saved_diagnostic::saved_diagnostic): Likewise. (struct pending_location): New. (diagnostic_manager::add_diagnostic): Replace params "enode", "snode", "stmt", and "stmt_finder" with "ploc". * engine.cc (impl_region_model_context::warn): Update call to add_diagnostic for above change. (impl_sm_context::warn): Likewise. (impl_region_model_context::on_state_leak): Likewise. * infinite-recursion.cc (exploded_graph::detect_infinite_recursion): Likewise. Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Diffstat (limited to 'gcc/analyzer/infinite-recursion.cc')
-rw-r--r--gcc/analyzer/infinite-recursion.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/analyzer/infinite-recursion.cc b/gcc/analyzer/infinite-recursion.cc
index 3ba316e..9576ff5 100644
--- a/gcc/analyzer/infinite-recursion.cc
+++ b/gcc/analyzer/infinite-recursion.cc
@@ -625,8 +625,12 @@ exploded_graph::detect_infinite_recursion (exploded_node *enode)
const supernode *caller_snode = call_string.get_top_of_stack ().m_caller;
const supernode *snode = enode->get_supernode ();
gcc_assert (caller_snode->m_returning_call);
+ pending_location ploc (enode,
+ snode,
+ caller_snode->m_returning_call,
+ nullptr);
get_diagnostic_manager ().add_diagnostic
- (enode, snode, caller_snode->m_returning_call, NULL,
+ (ploc,
make_unique<infinite_recursion_diagnostic> (prev_entry_enode,
enode,
fndecl));