more debug info
[libfirm] / ir / opt / return.c
index ce580ee..4d7e729 100644 (file)
@@ -32,7 +32,6 @@
 #include "ircons_t.h"
 #include "irnode_t.h"
 #include "irgmod.h"
-#include "xmalloc.h"
 
 #define set_bit(n)      (returns[(n) >> 3] |= 1 << ((n) & 7))
 #define get_bit(n)      (returns[(n) >> 3] & (1 << ((n) & 7)))
@@ -190,6 +189,8 @@ static int can_move_ret(ir_node *ret) {
 
        /* check, that predecessors are Jmps */
        n = get_Block_n_cfgpreds(retbl);
+       if (n <= 1)
+               return 0;
        for (i = 0; i < n; ++i) {
                ir_node *pred = get_Block_cfgpred(retbl, i);
 
@@ -202,9 +203,7 @@ static int can_move_ret(ir_node *ret) {
                        set_Block_cfgpred(retbl, i, jmp);
                }
        }
-
-       /* if we have 0 control flow predecessors, we cannot move :-) */
-       return n > 0;
+       return 1;
 }
 
 /*