diff options
author | David Malcolm <dmalcolm@redhat.com> | 2023-09-15 13:47:42 -0400 |
---|---|---|
committer | David Malcolm <dmalcolm@redhat.com> | 2023-09-15 13:47:42 -0400 |
commit | 759a1a52ea615df707f569246e5e15b5f12a2307 (patch) | |
tree | 18978569286287869c42613d533cad82e1cb4a8a /gcc/analyzer/infinite-recursion.cc | |
parent | 6319b5b2d4669077e4ddf1e249eeb5602394693c (diff) | |
download | gcc-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.cc | 6 |
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)); |