LOG_SCOPE (logger);
auto_timevar tv (TV_ANALYZER_SCC);
- for (int i = 0; i < m_sg.m_nodes.length (); i++)
+ for (size_t i = 0; i < m_sg.m_nodes.length (); i++)
m_per_node.quick_push (per_node_data ());
for (auto snode : m_sg.m_nodes)
fprintf (stderr, "%i", i);
}
fprintf (stderr, "]\n");
- for (int i = 0; i < m_sg.m_nodes.length (); i++)
+ for (size_t i = 0; i < m_sg.m_nodes.length (); i++)
{
const per_node_data &v = m_per_node[i];
- fprintf (stderr, "SN %i: index: %i lowlink: %i on_stack: %i\n",
+ fprintf (stderr, "SN %lu: index: %i lowlink: %i on_stack: %i\n",
i, v.m_id, v.m_lowlink, v.m_on_stack);
}
}
strongly_connected_components::to_json () const
{
auto scc_arr = std::make_unique<json::array> ();
- for (int i = 0; i < m_sg.m_nodes.length (); i++)
+ for (size_t i = 0; i < m_sg.m_nodes.length (); i++)
scc_arr->append (std::make_unique<json::integer_number> (get_scc_id (i)));
return scc_arr;
}
/* Accumulate number of enodes per supernode. */
auto_vec<unsigned> enodes_per_supernode (m_sg.m_nodes.length ());
- for (int i = 0; i < m_sg.m_nodes.length (); i++)
+ for (size_t i = 0; i < m_sg.m_nodes.length (); i++)
enodes_per_supernode.quick_push (0);
int i;
exploded_node *enode;
/* Accumulate excess enodes per supernode. */
auto_vec<unsigned> excess_enodes_per_supernode (m_sg.m_nodes.length ());
- for (int i = 0; i < m_sg.m_nodes.length (); i++)
+ for (size_t i = 0; i < m_sg.m_nodes.length (); i++)
excess_enodes_per_supernode.quick_push (0);
for (point_map_t::iterator iter = m_per_point_data.begin ();
iter != m_per_point_data.end (); ++iter)
bar_chart enodes_per_snode;
bar_chart excess_enodes_per_snode;
bool have_excess_enodes = false;
- for (int i = 0; i < m_sg.m_nodes.length (); i++)
+ for (size_t i = 0; i < m_sg.m_nodes.length (); i++)
{
const supernode *iter_snode = m_sg.m_nodes[i];
if (iter_snode->get_function () != fn)
{
gcc_assert (rc);
if (out)
- {
- const exploded_node &src_enode = *eedge->m_src;
- const program_point &src_point = src_enode.get_point ();
- *out = std::make_unique<feasibility_problem> (edge_idx, *eedge,
- std::move (rc));
- }
+ *out = std::make_unique<feasibility_problem> (edge_idx, *eedge,
+ std::move (rc));
return false;
}
: m_eg (eg)
{
/* Avoid O(N^2) by prepopulating m_enodes_per_snode_id. */
- for (int i = 0; i < eg.get_supergraph ().m_nodes.length (); ++i)
+ for (size_t i = 0; i < eg.get_supergraph ().m_nodes.length (); ++i)
m_enodes_per_snode_id.push_back (std::vector<exploded_node *> ());
exploded_node *enode;
unsigned i;
maybe_dump_supergraph (sg, "fixup-locations");
- engine eng (mgr, &sg, logger);
+ engine eng (mgr, &sg);
state_purge_map *purge_map = nullptr;
if (flag_analyzer_state_purge)
call_and_return
};
- ~operation () {}
+ virtual ~operation () {}
void
dump () const;
std::unique_ptr<rejected_constraint> *out_rc) const override;
const control_flow_op *
- dyn_cast_control_flow_op () const { return this; }
+ dyn_cast_control_flow_op () const final override { return this; }
::edge get_cfg_edge () const { return m_cfg_edge; }
int get_flags () const { return m_cfg_edge->flags; }
return std::make_unique<phis_for_edge_op> (*this);
}
- phis_for_edge_op (std::vector<pair> &&pairs,
- ::edge cfg_in_edge);
+ phis_for_edge_op (std::vector<pair> &&pairs);
const phis_for_edge_op *
dyn_cast_phis_for_edge_op () const final override { return this; }
region_model_context *ctxt) const;
std::vector<pair> m_pairs;
- ::edge m_cfg_in_edge;
};
} // namespace ana
{
public:
sorting_worklist ()
- : m_queue (key_t (*this, nullptr))
+ : m_queue (key_t (nullptr))
{
}
class key_t
{
public:
- key_t (const sorting_worklist &w, supernode *snode)
- : m_worklist (w), m_snode (snode)
+ key_t (supernode *snode)
+ : m_snode (snode)
{}
bool operator< (const key_t &other) const
private:
static int cmp (const key_t &ka, const key_t &kb);
- const sorting_worklist &m_worklist;
supernode *m_snode;
};
void
sorting_worklist::add_node (supernode *n)
{
- m_queue.insert ({*this, n}, n);
+ m_queue.insert ({n}, n);
m_set_of_queued_nodes.insert (n);
}