aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'linearize.c')
-rw-r--r--linearize.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/linearize.c b/linearize.c
index 238ee5d..f2034ce 100644
--- a/linearize.c
+++ b/linearize.c
@@ -1389,7 +1389,9 @@ static pseudo_t linearize_logical(struct entrypoint *ep, struct expression *expr
shortcut = alloc_const_expression(expr->pos, expr->op == SPECIAL_LOGICAL_OR);
shortcut->ctype = expr->ctype;
- return linearize_conditional(ep, expr, expr->left, shortcut, expr->right);
+ if (expr->op == SPECIAL_LOGICAL_OR)
+ return linearize_conditional(ep, expr, expr->left, shortcut, expr->right);
+ return linearize_conditional(ep, expr, expr->left, expr->right, shortcut);
}
static pseudo_t linearize_compare(struct entrypoint *ep, struct expression *expr)