X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ast2firm.c;h=f92f870d99d20e2a4ceec3b9c4599c02a27d8a21;hb=6b26906854c2f5423fa3986a0caf3c23b200b553;hp=a205b2722a7bedcdb8255a6f37daa4564c333ebc;hpb=ff25d271feafec73df71169a5b87dcc2854fd85e;p=cparser diff --git a/ast2firm.c b/ast2firm.c index a205b27..f92f870 100644 --- a/ast2firm.c +++ b/ast2firm.c @@ -2524,6 +2524,11 @@ static ir_node *create_cast(dbg_info *dbgi, ir_node *value_node, type_t *from_type, type_t *type) { type = skip_typeref(type); + if (type == type_void) { + /* make sure firm type is constructed */ + (void) get_ir_type(type); + return NULL; + } if (!is_type_scalar(type)) { /* make sure firm type is constructed */ (void) get_ir_type(type); @@ -4923,14 +4928,10 @@ static void if_statement_to_firm(if_statement_t *statement) static void while_statement_to_firm(while_statement_t *statement) { - ir_node *jmp = NULL; - if (get_cur_block() != NULL) { - jmp = new_Jmp(); - } - /* create the header block */ ir_node *header_block = new_immBlock(); - if (jmp != NULL) { + if (get_cur_block() != NULL) { + ir_node *const jmp = new_Jmp(); add_immBlock_pred(header_block, jmp); } @@ -4950,7 +4951,7 @@ static void while_statement_to_firm(while_statement_t *statement) break_label = old_break_label; if (get_cur_block() != NULL) { - jmp = new_Jmp(); + ir_node *const jmp = new_Jmp(); add_immBlock_pred(header_block, jmp); } @@ -5847,7 +5848,7 @@ static void add_function_pointer(ir_type *segment, ir_entity *method, set_entity_ld_ident(ptr, new_id_from_chars("", 0)); set_entity_compiler_generated(ptr, 1); - set_entity_visibility(ptr, ir_visibility_local); + set_entity_visibility(ptr, ir_visibility_private); add_entity_linkage(ptr, IR_LINKAGE_CONSTANT|IR_LINKAGE_HIDDEN_USER); set_atomic_ent_value(ptr, val); }