/*
- * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
if (get_entity_variability(ent) == variability_uninitialized) return 0;
if (is_compound_entity(ent)) {
- int i;
- for (i = get_compound_ent_n_values(ent) - 1; i >= 0; --i) {
- if (constant_on_wrong_irg(get_compound_ent_value(ent, i)))
- return 1;
+ if(!ent->has_initializer) {
+ int i;
+ for (i = get_compound_ent_n_values(ent) - 1; i >= 0; --i) {
+ if (constant_on_wrong_irg(get_compound_ent_value(ent, i)))
+ return 1;
+ }
}
} else {
/* Might not be set if entity belongs to a description or is external allocated. */
/*
* check types and entities
*/
-static void check_tore(type_or_ent *tore, void *env) {
+static void check_tore(type_or_ent tore, void *env) {
int *res = env;
- assert(tore);
- if (is_type(tore)) {
- *res = check_type((ir_type *)tore);
+ assert(tore.ent);
+ if (is_type(tore.typ)) {
+ *res = check_type(tore.typ);
} else {
- assert(is_entity(tore));
- *res = check_entity((ir_entity *)tore);
+ assert(is_entity(tore.ent));
+ *res = check_entity(tore.ent);
}
}