mirror of
https://forge.sourceware.org/marek/gcc.git
synced 2026-02-22 03:47:02 -05:00
analyzer: fix state dumps for return_event [PR122003]
In the reimplementation of supergraph (r16-6063-g0b786d961d4426) the class return_event moved from being a subclass of superedge_event to a subclass of checker_event, thus using checker_event::get_program_state which returns null. This stopped e.g. HTML state-graph output showing state at return events in e.g. event (8) of https://dmalcolm.fedorapeople.org/gcc/2025-12-15/state-diagram-1.c.html Fixed by implementing return_event::get_program_state. gcc/analyzer/ChangeLog: PR analyzer/122003 * checker-event.cc (return_event::get_program_state): New. * checker-event.h (return_event::get_program_state): New decl. Signed-off-by: David Malcolm <dmalcolm@redhat.com>
This commit is contained in:
@@ -847,6 +847,12 @@ return_event::is_return_p () const
|
||||
return true;
|
||||
}
|
||||
|
||||
const program_state *
|
||||
return_event::get_program_state () const
|
||||
{
|
||||
return &m_eedge.m_dest->get_state ();
|
||||
}
|
||||
|
||||
/* class start_consolidated_cfg_edges_event : public checker_event. */
|
||||
|
||||
void
|
||||
|
||||
@@ -603,6 +603,9 @@ public:
|
||||
return m_call_and_return_op;
|
||||
}
|
||||
|
||||
const program_state *
|
||||
get_program_state () const override;
|
||||
|
||||
/* Mark this edge event as being either an interprocedural call or
|
||||
return in which VAR is in STATE, and that this is critical to the
|
||||
diagnostic (so that print_desc can attempt to get a better description
|
||||
|
||||
Reference in New Issue
Block a user