- mark_entity_visited(ent);
- do_type_walk((type_or_ent *)get_entity_owner(ent), pre, post, env);
- do_type_walk((type_or_ent *)get_entity_type(ent), pre, post, env);
-
- if (get_entity_variability(ent) != variability_uninitialized) {
- /* walk over the value types */
- if (is_atomic_entity(ent)) {
- n = get_atomic_ent_value(ent);
- irn_type_walker(n, pre, post, env);
- } else {
- n_mem = get_compound_ent_n_values(ent);
- for (i = 0; i < n_mem; ++i) {
- n = get_compound_ent_value(ent, i);
- irn_type_walker(n, pre, post, env);
- }
- }
+ cont.typ = get_entity_owner(ent);
+ do_type_walk(cont, pre, post, env);
+ cont.typ = get_entity_type(ent);
+ do_type_walk(cont, pre, post, env);
+
+ /* walk over the value types */
+ if (ent->initializer != NULL) {
+ walk_initializer(ent->initializer, pre, post, env);