projects
/
cparser
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
fe1b9f5
)
- BugFix: unitializer must be created using qualifiers from array-skipped typed
author
Michael Beck
<beck@ipd.info.uni-karlsruhe.de>
Thu, 18 Sep 2008 19:17:54 +0000
(19:17 +0000)
committer
Michael Beck
<beck@ipd.info.uni-karlsruhe.de>
Thu, 18 Sep 2008 19:17:54 +0000
(19:17 +0000)
[r22092]
ast2firm.c
patch
|
blob
|
history
diff --git
a/ast2firm.c
b/ast2firm.c
index
86638a7
..
e3eed6e
100644
(file)
--- a/
ast2firm.c
+++ b/
ast2firm.c
@@
-3862,7
+3862,8
@@
static void create_declaration_initializer(declaration_t *declaration)
return;
}
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;
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;
ir_entity *entity = declaration->v.entity;
- if (t
ype->base.qualifiers
& TYPE_QUALIFIER_CONST) {
+ if (t
q
& TYPE_QUALIFIER_CONST) {
set_entity_variability(entity, variability_constant);
} else {
set_entity_variability(entity, variability_initialized);
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 {
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);
ir_entity *entity = declaration->v.entity;
ir_initializer_t *irinitializer
= create_ir_initializer(initializer, type);
- if (t
ype->base.qualifiers
& TYPE_QUALIFIER_CONST) {
+ if (t
q
& TYPE_QUALIFIER_CONST) {
set_entity_variability(entity, variability_constant);
} else {
set_entity_variability(entity, variability_initialized);
set_entity_variability(entity, variability_constant);
} else {
set_entity_variability(entity, variability_initialized);