gcc/ChangeLog:
* analyzer/analyzer.h (class state_change_event): Forward decl.
* analyzer/checker-path.cc (state_change_event::get_desc): Pass *this
to evdesc::state_change ctor.
* analyzer/pending-diagnostic.h
(evdesc::state_change::state_change): Add a
const state_change_event & param and use it initialize...
(evdesc::state_change::m_event): ...this new field.
---
gcc/analyzer/analyzer.h | 1 +
gcc/analyzer/checker-path.cc | 2 +-
gcc/analyzer/pending-diagnostic.h | 6 ++++--
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/gcc/analyzer/analyzer.h b/gcc/analyzer/analyzer.h
index 19bc2c6d8252..353285c35c36 100644
--- a/gcc/analyzer/analyzer.h
+++ b/gcc/analyzer/analyzer.h
@@ -50,6 +50,7 @@ struct model_merger;
struct svalue_id_merger_mapping;
struct canonicalization;
class pending_diagnostic;
+class state_change_event;
class checker_path;
class extrinsic_state;
class sm_state_map;
diff --git a/gcc/analyzer/checker-path.cc b/gcc/analyzer/checker-path.cc
index bc47380bc3f5..554a20f31bec 100644
--- a/gcc/analyzer/checker-path.cc
+++ b/gcc/analyzer/checker-path.cc
@@ -229,7 +229,7 @@ state_change_event::get_desc (bool can_colorize) const
label_text custom_desc
= m_pending_diagnostic->describe_state_change
(evdesc::state_change (can_colorize, m_var, m_origin,
- m_from, m_to, m_emission_id));
+ m_from, m_to, m_emission_id, *this));
if (custom_desc.m_buffer)
{
if (flag_analyzer_verbose_state_changes)
diff --git a/gcc/analyzer/pending-diagnostic.h
b/gcc/analyzer/pending-diagnostic.h
index 4103a91e2f56..15a1379e8fd1 100644
--- a/gcc/analyzer/pending-diagnostic.h
+++ b/gcc/analyzer/pending-diagnostic.h
@@ -50,11 +50,12 @@ struct state_change : public event_desc
tree origin,
state_machine::state_t old_state,
state_machine::state_t new_state,
- diagnostic_event_id_t event_id)
+ diagnostic_event_id_t event_id,
+ const state_change_event &event)
: event_desc (colorize),
m_expr (expr), m_origin (origin),
m_old_state (old_state), m_new_state (new_state),
- m_event_id (event_id)
+ m_event_id (event_id), m_event (event)
{}
bool is_global_p () const { return m_expr == NULL_TREE; }
@@ -64,6 +65,7 @@ struct state_change : public event_desc
state_machine::state_t m_old_state;
state_machine::state_t m_new_state;
diagnostic_event_id_t m_event_id;
+ const state_change_event &m_event;
};
/* For use by pending_diagnostic::describe_call_with_state. */
--
2.21.0