No functional change intended.

Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to trunk as r16-260-g4e1f545df9da1d.

gcc/analyzer/ChangeLog:
        * call-summary.cc (call_summary_replay::call_summary_replay):
        Convert "summary" from call_summary * to call_summary &.
        (call_summary_replay::dump_to_pp): Likewise for m_summary.
        * call-summary.h (call_summary_replay::call_summary_replay):
        Likewise for "summary".
        (call_summary_replay::m_summary): Likewise.
        * engine.cc (call_summary_edge_info::call_summary_edge_info):
        Likewise.
        (call_summary_edge_info::update_state): Likewise.
        (call_summary_edge_info::update_model): Likewise.
        (call_summary_edge_info::print_desc): Likewise for m_summary.
        (call_summary_edge_info::m_summary): Likewise.
        (exploded_node::replay_call_summaries): Update for change to
        replay_call_summary.
        (exploded_node::replay_call_summary): Convert "summary" from
        call_summary * to call_summary &.
        * exploded-graph.h (exploded_node::replay_call_summary): Likewise.
---
 gcc/analyzer/call-summary.cc  |  4 ++--
 gcc/analyzer/call-summary.h   |  4 ++--
 gcc/analyzer/engine.cc        | 24 +++++++++++++-----------
 gcc/analyzer/exploded-graph.h |  2 +-
 4 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/gcc/analyzer/call-summary.cc b/gcc/analyzer/call-summary.cc
index 14ccba28f7e..33de3d638f2 100644
--- a/gcc/analyzer/call-summary.cc
+++ b/gcc/analyzer/call-summary.cc
@@ -157,7 +157,7 @@ call_summary::dump (const extrinsic_state &ext_state, bool 
simple) const
 
 call_summary_replay::call_summary_replay (const call_details &cd,
                                          const function &called_fn,
-                                         call_summary *summary,
+                                         call_summary &summary,
                                          const extrinsic_state &ext_state)
 : m_cd (cd),
   m_summary (summary),
@@ -808,7 +808,7 @@ call_summary_replay::dump_to_pp (pretty_printer *pp, bool 
simple) const
   pp_newline (pp);
   pp_string (pp, "CALLEE SUMMARY:");
   pp_newline (pp);
-  m_summary->dump_to_pp (m_ext_state, pp, simple);
+  m_summary.dump_to_pp (m_ext_state, pp, simple);
 
   /* Current state of caller (could be in mid-update).  */
   pp_newline (pp);
diff --git a/gcc/analyzer/call-summary.h b/gcc/analyzer/call-summary.h
index 297171d745f..7280cca8bd7 100644
--- a/gcc/analyzer/call-summary.h
+++ b/gcc/analyzer/call-summary.h
@@ -69,7 +69,7 @@ class call_summary_replay
 public:
   call_summary_replay (const call_details &cd,
                       const function &called_fn,
-                      call_summary *m_summary,
+                      call_summary &summary,
                       const extrinsic_state &ext_state);
 
   const call_details &get_call_details () const { return m_cd; }
@@ -102,7 +102,7 @@ private:
   const region *convert_region_from_summary_1 (const region *);
 
   const call_details &m_cd;
-  call_summary *m_summary;
+  call_summary &m_summary;
   const extrinsic_state &m_ext_state;
 
   // Mapping from svalues in summary to svalues for callsite:
diff --git a/gcc/analyzer/engine.cc b/gcc/analyzer/engine.cc
index 311bc5878b0..f33cc0bda4d 100644
--- a/gcc/analyzer/engine.cc
+++ b/gcc/analyzer/engine.cc
@@ -1626,7 +1626,7 @@ class call_summary_edge_info : public call_info
 public:
   call_summary_edge_info (const call_details &cd,
                          const function &called_fn,
-                         call_summary *summary,
+                         call_summary &summary,
                          const extrinsic_state &ext_state)
   : call_info (cd, called_fn),
     m_called_fn (called_fn),
@@ -1641,7 +1641,7 @@ public:
     /* Update STATE based on summary_end_state.  */
     call_details cd (get_call_details (state->m_region_model, ctxt));
     call_summary_replay r (cd, m_called_fn, m_summary, m_ext_state);
-    const program_state &summary_end_state = m_summary->get_state ();
+    const program_state &summary_end_state = m_summary.get_state ();
     return state->replay_call_summary (r, summary_end_state);
   }
 
@@ -1652,19 +1652,19 @@ public:
     /* Update STATE based on summary_end_state.  */
     call_details cd (get_call_details (model, ctxt));
     call_summary_replay r (cd, m_called_fn, m_summary, m_ext_state);
-    const program_state &summary_end_state = m_summary->get_state ();
+    const program_state &summary_end_state = m_summary.get_state ();
     model->replay_call_summary (r, *summary_end_state.m_region_model);
     return true;
   }
 
   void print_desc (pretty_printer &pp) const final override
   {
-    pp_string (&pp, m_summary->get_desc ().get ());
+    pp_string (&pp, m_summary.get_desc ().get ());
   }
 
 private:
   const function &m_called_fn;
-  call_summary *m_summary;
+  call_summary &m_summary;
   const extrinsic_state &m_ext_state;
 };
 
@@ -1686,8 +1686,11 @@ exploded_node::replay_call_summaries (exploded_graph &eg,
 
   /* Each summary will call bifurcate on the PATH_CTXT.  */
   for (auto summary : called_fn_data.m_summaries)
-    replay_call_summary (eg, snode, call_stmt, state,
-                        path_ctxt, called_fn, summary, ctxt);
+    {
+      gcc_assert (summary);
+      replay_call_summary (eg, snode, call_stmt, state,
+                          path_ctxt, called_fn, *summary, ctxt);
+    }
   path_ctxt->terminate_path ();
 
   return on_stmt_flags ();
@@ -1704,22 +1707,21 @@ exploded_node::replay_call_summary (exploded_graph &eg,
                                    program_state *old_state,
                                    path_context *path_ctxt,
                                    const function &called_fn,
-                                   call_summary *summary,
+                                   call_summary &summary,
                                    region_model_context *ctxt)
 {
   logger *logger = eg.get_logger ();
   LOG_SCOPE (logger);
   gcc_assert (snode);
   gcc_assert (old_state);
-  gcc_assert (summary);
 
   if (logger)
     logger->log ("using %s as summary for call to %qE from %qE",
-                summary->get_desc ().get (),
+                summary.get_desc ().get (),
                 called_fn.decl,
                 snode->get_function ()->decl);
   const extrinsic_state &ext_state = eg.get_ext_state ();
-  const program_state &summary_end_state = summary->get_state ();
+  const program_state &summary_end_state = summary.get_state ();
   if (logger)
     {
       pretty_printer *pp = logger->get_printer ();
diff --git a/gcc/analyzer/exploded-graph.h b/gcc/analyzer/exploded-graph.h
index 7c38de4e4d7..aa6fb1f6036 100644
--- a/gcc/analyzer/exploded-graph.h
+++ b/gcc/analyzer/exploded-graph.h
@@ -294,7 +294,7 @@ class exploded_node : public dnode<eg_traits>
                            program_state *state,
                            path_context *path_ctxt,
                            const function &called_fn,
-                           call_summary *summary,
+                           call_summary &summary,
                            region_model_context *ctxt);
 
   bool on_edge (exploded_graph &eg,
-- 
2.26.3

Reply via email to