{
Dtlink_t **seq_set, **id_set;
Agnode_t *n; /* node where <e> is referenced */
+ Agedge_t **tmp;
if (AGTYPE(e) == AGOUTEDGE) {
n = AGOUT2IN(e)->node;
- seq_set = (Dtlink_t **) & (n->out);
+ tmp = &(n->out); /* avoiding - "dereferencing type-punned pointer will break strict-aliasing rules" */
+ seq_set = (Dtlink_t **)tmp;
id_set = &(n->outid);
} else {
n = AGIN2OUT(e)->node;
- seq_set = (Dtlink_t **) & (n->in);
+ tmp = &(n->in);
+ seq_set = (Dtlink_t **)tmp;
id_set = &(n->inid);
}
void agflatten_edges(Agraph_t * g, Agnode_t * n)
{
- agflatten_elist(g->e_seq, (Dtlink_t **) & (n->out));
- agflatten_elist(g->e_seq, (Dtlink_t **) & (n->in));
+ Agedge_t **tmp;
+
+ tmp = &(n->out); /* avoiding - "dereferencing type-punned pointer will break strict-aliasing rules" */
+
+ agflatten_elist(g->e_seq, (Dtlink_t **) tmp);
+ tmp = &(n->in);
+ agflatten_elist(g->e_seq, (Dtlink_t **) tmp);
}
void agflatten(Agraph_t * g, int flag)