aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-04-09 16:29:09 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-04-11 08:19:38 +0200
commit0f5a39dcea89c66236c04815b77b107763873431 (patch)
treef2b07a601cab7c53bfe4cd736a81ea8cfa88c06f
parent79f7ac984473d031dfb9cef00119c2d542d0d4a6 (diff)
downloadsparse-0f5a39dcea89c66236c04815b77b107763873431.tar.gz
do not use expr->left for conditionals
expr->left & expr->conditional are unioned but 'left' should only be used for binary operators. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--expression.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/expression.c b/expression.c
index ffb6cb9d..5b9bddfe 100644
--- a/expression.c
+++ b/expression.c
@@ -873,7 +873,7 @@ struct token *conditional_expression(struct token *token, struct expression **tr
if (*tree && match_op(token, '?')) {
struct expression *expr = alloc_expression(token->pos, EXPR_CONDITIONAL);
expr->op = token->special;
- expr->left = *tree;
+ expr->conditional = *tree;
*tree = expr;
token = parse_expression(token->next, &expr->cond_true);
token = expect(token, ':', "in conditional expression");