benewalloc: fix assert hitting when dying value was used at 2 inputs
authorMatthias Braun <matze@braunis.de>
Mon, 17 Aug 2009 08:11:04 +0000 (08:11 +0000)
committerMatthias Braun <matze@braunis.de>
Mon, 17 Aug 2009 08:11:04 +0000 (08:11 +0000)
[r26369]

ir/be/benewalloc.c

index 0813ed1..1fe00e7 100644 (file)
@@ -535,7 +535,9 @@ static void free_reg_of_value(ir_node *node)
        reg               = arch_get_irn_register(node);
        r                 = arch_register_get_index(reg);
        assignment        = &assignments[r];
-       assert(assignment->value == node);
+       /* assignment->value may be NULL if a value is used at 2 inputs
+          so it gets freed twice. */
+       assert(assignment->value == node || assignment->value == NULL);
        assignment->value = NULL;
 }