X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=ast2firm.c;h=e3eed6ee85d9e276ded8b1cd7c2c9e46dc7712af;hb=811f9c05d89407f7d0b204c7702878b510bc27f3;hp=86638a7f9873b58f70e28b26cab0204492e69f34;hpb=fe1b9f5474e6f6e609c437e2c5a44a80bff5a21f;p=cparser diff --git a/ast2firm.c b/ast2firm.c index 86638a7..e3eed6e 100644 --- a/ast2firm.c +++ b/ast2firm.c @@ -3862,7 +3862,8 @@ static void create_declaration_initializer(declaration_t *declaration) return; } - type_t *type = skip_typeref(declaration->type); + type_t *type = declaration->type; + type_qualifiers_t tq = get_type_qualifier(type, true); if (initializer->kind == INITIALIZER_VALUE) { initializer_value_t *initializer_value = &initializer->value; @@ -3879,7 +3880,7 @@ static void create_declaration_initializer(declaration_t *declaration) ir_entity *entity = declaration->v.entity; - if (type->base.qualifiers & TYPE_QUALIFIER_CONST) { + if (tq & TYPE_QUALIFIER_CONST) { set_entity_variability(entity, variability_constant); } else { set_entity_variability(entity, variability_initialized); @@ -3887,14 +3888,14 @@ static void create_declaration_initializer(declaration_t *declaration) set_atomic_ent_value(entity, value); } } else { - assert(declaration_kind == DECLARATION_KIND_LOCAL_VARIABLE_ENTITY - || declaration_kind == DECLARATION_KIND_GLOBAL_VARIABLE); + assert(declaration_kind == DECLARATION_KIND_LOCAL_VARIABLE_ENTITY || + declaration_kind == DECLARATION_KIND_GLOBAL_VARIABLE); ir_entity *entity = declaration->v.entity; ir_initializer_t *irinitializer = create_ir_initializer(initializer, type); - if (type->base.qualifiers & TYPE_QUALIFIER_CONST) { + if (tq & TYPE_QUALIFIER_CONST) { set_entity_variability(entity, variability_constant); } else { set_entity_variability(entity, variability_initialized);