]> granicus.if.org Git - graphviz/commitdiff
janitor - recode to avoid: "dereferencing type-punned pointer will break strict-alias...
authorellson <devnull@localhost>
Tue, 18 Jul 2006 18:07:44 +0000 (18:07 +0000)
committerellson <devnull@localhost>
Tue, 18 Jul 2006 18:07:44 +0000 (18:07 +0000)
lib/agraph/edge.c
lib/agraph/flatten.c

index 427d2b526b6aa35c06c2108f9f36d44735684c55..8b1573f62755f2e16ab3c08fb30da2f7b1792896 100644 (file)
@@ -151,14 +151,17 @@ void agedgesetop(Agraph_t * g, Agedge_t * e, int ins)
 {
     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);
     }
 
index 209330f11647ea8f25ae4e5747841ef322563b00..e8ddbe904d602808bfbb76259425f6a22db85a03 100644 (file)
@@ -26,8 +26,13 @@ void agflatten_elist(Dict_t * d, Dtlink_t ** lptr)
 
 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)