BugFix: turn_into_tuple() now works if edges are activated
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Wed, 3 May 2006 10:38:32 +0000 (10:38 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Wed, 3 May 2006 10:38:32 +0000 (10:38 +0000)
[r7688]

ir/ir/irgmod.c

index 46b299d..260e2a8 100644 (file)
@@ -40,8 +40,10 @@ turn_into_tuple (ir_node *node, int arity)
   } else {
     /* Allocate new array, don't free old in_array, it's on the obstack. */
     ir_node *block = get_nodes_block(node);
-    node->in = NEW_ARR_D (ir_node *, current_ir_graph->obst, arity+1);
-               edges_invalidate(node, current_ir_graph);
+    edges_invalidate(node, current_ir_graph);
+    node->in = NEW_ARR_D(ir_node *, current_ir_graph->obst, arity+1);
+    /* clear the new in array, else edge_notify tries to delete garbage */
+    memset(node->in, 0, (arity+1) * sizeof(node->in[0]));
     set_nodes_block(node, block);
   }
 }