41template <
typename GraphTraits>
45 typedef typename GraphTraits::edge_t
edge_t;
76 for (
unsigned i = 0;
i < edges.length (); ++
i)
85template <
typename GraphTraits>
89 typedef typename GraphTraits::node_t
node_t;
90 typedef typename GraphTraits::edge_t
edge_t;
103 if (new_dest != old_dest)
105 old_dest->remove_in_edge (
static_cast<edge_t *
> (
this));
107 new_dest->add_in_edge (
static_cast<edge_t *
> (
this));
119template <
typename GraphTraits>
123 typedef typename GraphTraits::node_t
node_t;
124 typedef typename GraphTraits::edge_t
edge_t;
171template <
typename GraphTraits>
175 typedef typename GraphTraits::node_t
node_t;
190template <
typename GraphTraits>
213 root_cluster->add_node (n);
214 root_cluster->dump_dot (&gv, args);
222 n->dump_dot (&gv, args);
229 e->dump_dot (&gv, args);
243template <
typename GraphTraits>
261template <
typename GraphTraits>
274template <
typename GraphTraits>
284template <
typename GraphTraits>
289 edge->m_dest->m_preds.safe_push (
edge);
290 edge->m_src->m_succs.safe_push (
edge);
virtual void dump_dot(graphviz_out *gv, const dump_args_t &) const =0
GraphTraits::dump_args_t dump_args_t
Definition digraph.h:176
GraphTraits::node_t node_t
Definition digraph.h:175
virtual void add_node(node_t *node)=0
virtual ~cluster()
Definition digraph.h:178
virtual void dump_dot(graphviz_out *gv, const dump_args_t &args) const =0
node_t * m_dest
Definition digraph.h:112
dedge(node_t *src, node_t *dest)
Definition digraph.h:93
void set_dest(node_t *new_dest)
Definition digraph.h:100
GraphTraits::node_t node_t
Definition digraph.h:89
node_t * m_src
Definition digraph.h:111
GraphTraits::edge_t edge_t
Definition digraph.h:90
GraphTraits::dump_args_t dump_args_t
Definition digraph.h:91
virtual ~dedge()
Definition digraph.h:96
void add_node(std::unique_ptr< node > n)
Definition diagnostics/digraphs.h:205
void add_edge(std::unique_ptr< edge > e)
Definition diagnostics/digraphs.h:212
GraphTraits::node_t node_t
Definition digraph.h:123
GraphTraits::edge_t edge_t
Definition digraph.h:124
auto_delete_vec< edge_t > m_edges
Definition digraph.h:151
void dump_dot_to_pp(pretty_printer *pp, cluster_t *root_cluster, const dump_args_t &args) const
Definition digraph.h:192
void dump_dot_to_file(FILE *fp, cluster_t *root_cluster, const dump_args_t &args) const
Definition digraph.h:245
auto_delete_vec< node_t > m_nodes
Definition digraph.h:150
void add_edge(edge_t *edge)
Definition digraph.h:286
void dump_dot(const char *path, cluster_t *root_cluster, const dump_args_t &args) const
Definition digraph.h:263
virtual void add_any_extra_stmts(graphviz_out &) const
Definition digraph.h:145
virtual ~digraph()
Definition digraph.h:129
GraphTraits::cluster_t cluster_t
Definition digraph.h:126
GraphTraits::dump_args_t dump_args_t
Definition digraph.h:125
void add_node(node_t *node)
Definition digraph.h:276
digraph()
Definition digraph.h:128
void add_in_edge(edge_t *e)
Definition digraph.h:51
GraphTraits::edge_t edge_t
Definition digraph.h:45
virtual void dump_dot(graphviz_out *gv, const dump_args_t &args) const =0
void remove_out_edge(edge_t *e)
Definition digraph.h:63
virtual ~dnode()
Definition digraph.h:48
GraphTraits::dump_args_t dump_args_t
Definition digraph.h:46
static unsigned find_edge_idx(auto_vec< edge_t * > &edges, edge_t *e)
Definition digraph.h:74
auto_vec< edge_t * > m_preds
Definition digraph.h:69
void add_out_edge(edge_t *e)
Definition digraph.h:59
void remove_in_edge(edge_t *e)
Definition digraph.h:55
auto_vec< edge_t * > m_succs
Definition digraph.h:70
void indent()
Definition graphviz.h:37
void outdent()
Definition graphviz.h:38
Definition graphviz.h:385
Definition pretty-print.h:241
void set_output_stream(FILE *outfile)
Definition pretty-print.h:274
static struct path_prefix cpath path
Definition collect2.cc:514
class edge_def * edge
Definition coretypes.h:369
Definition custom-sarif-properties/state-graphs.h:33
i
Definition poly-int.h:776
void pp_flush(pretty_printer *pp)
Definition pretty-print.cc:2462
void pp_newline(pretty_printer *pp)
Definition pretty-print.cc:2737
void pp_string(pretty_printer *pp, const char *str)
Definition pretty-print.cc:2764
printer_fn & pp_format_decoder(pretty_printer *pp)
Definition pretty-print.h:446
#define gcc_unreachable()
Definition system.h:844
#define fopen(PATH, MODE)
Definition system.h:62
bool default_tree_printer(pretty_printer *pp, text_info *text, const char *spec, int precision, bool wide, bool set_locus, bool hash, bool *, pp_token_list &)
Definition tree-diagnostic.cc:58
#define FOR_EACH_VEC_ELT(V, I, P)
Definition vec.h:1895