aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
-rw-r--r--linearize.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/linearize.c b/linearize.c
index 1081bda8..978d1e41 100644
--- a/linearize.c
+++ b/linearize.c
@@ -1795,37 +1795,30 @@ static pseudo_t linearize_cond_branch(struct entrypoint *ep, struct expression *
case EXPR_STRING:
case EXPR_VALUE:
add_goto(ep, expr->value ? bb_true : bb_false);
- return VOID;
-
+ break;
case EXPR_FVALUE:
add_goto(ep, expr->fvalue ? bb_true : bb_false);
- return VOID;
-
+ break;
case EXPR_LOGICAL:
linearize_logical_branch(ep, expr, bb_true, bb_false);
- return VOID;
-
+ break;
case EXPR_COMPARE:
cond = linearize_compare(ep, expr);
add_branch(ep, cond, bb_true, bb_false);
break;
-
case EXPR_PREOP:
if (expr->op == '!')
return linearize_cond_branch(ep, expr->unop, bb_false, bb_true);
/* fall through */
- default: {
+ default:
cond = linearize_expression_to_bool(ep, expr);
add_branch(ep, cond, bb_true, bb_false);
-
- return VOID;
- }
+ break;
}
return VOID;
}
-
static pseudo_t linearize_logical_branch(struct entrypoint *ep, struct expression *expr, struct basic_block *bb_true, struct basic_block *bb_false)
{
struct basic_block *next = alloc_basic_block(ep, expr->pos);