X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=ast2firm.c;h=75b674c7824142952b4dde66fe71dbac02c67e6e;hb=ac37e350f155e28e3a58a98f5d0b942d7fba426f;hp=4b7bbde9ca2ec0e81e4ec5de052f695a7399473e;hpb=8fd3925930c516c259a33326c474df8a67d29434;p=cparser diff --git a/ast2firm.c b/ast2firm.c index 4b7bbde..75b674c 100644 --- a/ast2firm.c +++ b/ast2firm.c @@ -1862,9 +1862,9 @@ static ir_node *call_expression_to_firm(const call_expression_t *const call) type_t *arg_type = skip_typeref(expression->base.type); if (!is_type_compound(arg_type)) { - ir_mode *mode = get_ir_mode_storage(expression->base.type); - arg_node = create_conv(dbgi, arg_node, mode); - arg_node = do_strict_conv(dbgi, arg_node); + ir_mode *const mode = get_ir_mode_storage(arg_type); + arg_node = create_conv(dbgi, arg_node, mode); + arg_node = do_strict_conv(dbgi, arg_node); } in[n] = arg_node; @@ -2385,7 +2385,7 @@ static ir_node *create_cast(dbg_info *dbgi, ir_node *value_node, if (from_var != NULL) { ir_node *const addr = create_symconst(dbgi, from_var->v.entity); ir_node *const base = deref_address(dbgi, from_var->base.type, addr); - value_node = new_d_Add(dbgi, value_node, base, get_ir_mode_storage(from_type)); + value_node = new_d_Add(dbgi, value_node, base, mode); } if (to_var != NULL) { ir_node *const addr = create_symconst(dbgi, to_var->v.entity); @@ -4276,7 +4276,6 @@ static void create_variable_initializer(entity_t *entity) type_qualifiers_t tq = get_type_qualifier(type, true); if (initializer->kind == INITIALIZER_VALUE) { - dbg_info *const dbgi = get_dbg_info(&entity->base.source_position); expression_t * value = initializer->value.value; type_t *const init_type = skip_typeref(value->base.type); @@ -4291,9 +4290,9 @@ static void create_variable_initializer(entity_t *entity) goto have_initializer; } - ir_node *node = expression_to_firm(value); - - ir_mode *mode = get_ir_mode_storage(init_type); + ir_node * node = expression_to_firm(value); + dbg_info *const dbgi = get_dbg_info(&entity->base.source_position); + ir_mode *const mode = get_ir_mode_storage(init_type); node = create_conv(dbgi, node, mode); node = do_strict_conv(dbgi, node);