X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Freturn.c;h=4d7e7292af8efedf96c6df5b0952be1973d37b35;hb=0cc8bfc863da28d3799e9eca1d1765d564b6e573;hp=ce580eeec8768c34b1613226ba5b948dde0c5e89;hpb=f3b8448f1f42a265342841e97df6f0212f5f898f;p=libfirm diff --git a/ir/opt/return.c b/ir/opt/return.c index ce580eeec..4d7e7292a 100644 --- a/ir/opt/return.c +++ b/ir/opt/return.c @@ -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; } /*