From 248d41abae392b9ddb5160d0395438228cf773c3 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Sat, 13 Dec 2008 19:20:27 +0000 Subject: [PATCH] type might be a struct [r24621] --- ast2firm.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/ast2firm.c b/ast2firm.c index a5b9305..89c266f 100644 --- a/ast2firm.c +++ b/ast2firm.c @@ -2504,8 +2504,11 @@ static ir_node *create_assign_binop(const binary_expression_t *expression) result = set_value_for_expression_addr(left_expr, result, left_addr); - ir_mode *mode_arithmetic = get_ir_mode_arithmetic(type); - return create_conv(dbgi, result, mode_arithmetic); + if (!is_type_compound(type)) { + ir_mode *mode_arithmetic = get_ir_mode_arithmetic(type); + result = create_conv(dbgi, result, mode_arithmetic); + } + return result; } static ir_node *binary_expression_to_firm(const binary_expression_t *expression) @@ -2540,8 +2543,11 @@ static ir_node *binary_expression_to_firm(const binary_expression_t *expression) = set_value_for_expression_addr(expression->left, right, addr); type_t *type = skip_typeref(expression->base.type); - ir_mode *mode_arithmetic = get_ir_mode_arithmetic(type); - return create_conv(NULL, res, mode_arithmetic); + if (!is_type_compound(type)) { + ir_mode *mode_arithmetic = get_ir_mode_arithmetic(type); + res = create_conv(NULL, res, mode_arithmetic); + } + return res; } case EXPR_BINARY_ADD: case EXPR_BINARY_SUB: -- 2.20.1