ir_entity *entity;
(void) env;
- if (!is_SymConst(node))
- return;
- if (!SYMCONST_HAS_ENT(get_SymConst_kind(node)))
+ if (is_SymConst(node)) {
+ if (!SYMCONST_HAS_ENT(get_SymConst_kind(node)))
+ return;
+ entity = get_SymConst_entity(node);
+ } else if (is_Sel(node)) {
+ entity = get_Sel_entity(node);
+ } else {
return;
+ }
- entity = get_SymConst_entity(node);
visit_entity(entity);
}
case IR_INITIALIZER_COMPOUND: {
size_t i;
- for(i = 0; i < initializer->compound.n_initializers; ++i) {
+ for (i = 0; i < initializer->compound.n_initializers; ++i) {
ir_initializer_t *subinitializer
= initializer->compound.initializers[i];
visit_initializer(subinitializer);
DB((dbg, LEVEL_1, " removing entity %+F\n", entity));
- /* TODO: this is O(n^2) improve our interfaces! */
- remove_class_member(get_entity_owner(entity), entity);
+ free_entity(entity);
}
}