diff options
Diffstat (limited to 'gcc/analyzer/sm-signal.cc')
-rw-r--r-- | gcc/analyzer/sm-signal.cc | 43 |
1 files changed, 13 insertions, 30 deletions
diff --git a/gcc/analyzer/sm-signal.cc b/gcc/analyzer/sm-signal.cc index d7e7e7c..e8cbe2d 100644 --- a/gcc/analyzer/sm-signal.cc +++ b/gcc/analyzer/sm-signal.cc @@ -81,13 +81,6 @@ public: const supernode *node, const gimple *stmt) const FINAL OVERRIDE; - void on_condition (sm_context *sm_ctxt, - const supernode *node, - const gimple *stmt, - tree lhs, - enum tree_code op, - tree rhs) const FINAL OVERRIDE; - bool can_purge_p (state_t s) const FINAL OVERRIDE; /* These states are "global", rather than per-expression. */ @@ -213,10 +206,10 @@ update_model_for_signal_handler (region_model *model, /* Custom exploded_edge info: entry into a signal-handler. */ -class signal_delivery_edge_info_t : public exploded_edge::custom_info_t +class signal_delivery_edge_info_t : public custom_edge_info { public: - void print (pretty_printer *pp) FINAL OVERRIDE + void print (pretty_printer *pp) const FINAL OVERRIDE { pp_string (pp, "signal delivered"); } @@ -227,20 +220,24 @@ public: return custom_obj; } - void update_model (region_model *model, - const exploded_edge &eedge) FINAL OVERRIDE + bool update_model (region_model *model, + const exploded_edge *eedge, + region_model_context *) const FINAL OVERRIDE { - update_model_for_signal_handler (model, eedge.m_dest->get_function ()); + gcc_assert (eedge); + update_model_for_signal_handler (model, eedge->m_dest->get_function ()); + return true; } void add_events_to_path (checker_path *emission_path, const exploded_edge &eedge ATTRIBUTE_UNUSED) - FINAL OVERRIDE + const FINAL OVERRIDE { emission_path->add_event - (new custom_event (UNKNOWN_LOCATION, NULL_TREE, 0, - "later on," - " when the signal is delivered to the process")); + (new precanned_custom_event + (UNKNOWN_LOCATION, NULL_TREE, 0, + "later on," + " when the signal is delivered to the process")); } }; @@ -362,20 +359,6 @@ signal_state_machine::on_stmt (sm_context *sm_ctxt, return false; } -/* Implementation of state_machine::on_condition vfunc for - signal_state_machine. */ - -void -signal_state_machine::on_condition (sm_context *sm_ctxt ATTRIBUTE_UNUSED, - const supernode *node ATTRIBUTE_UNUSED, - const gimple *stmt ATTRIBUTE_UNUSED, - tree lhs ATTRIBUTE_UNUSED, - enum tree_code op ATTRIBUTE_UNUSED, - tree rhs ATTRIBUTE_UNUSED) const -{ - // Empty -} - bool signal_state_machine::can_purge_p (state_t s ATTRIBUTE_UNUSED) const { |