* @param clss points to the visited class
* @param env free environment pointer
*/
-typedef void class_walk_func(type *clss, void *env);
+typedef void class_walk_func(ir_type *clss, void *env);
/** Touches every type and entity in unspecified order. If new
* types/entities are created during the traversal these will
* type walk at the irgs entity, the irgs frame type and all types and
* entities that are attributes to firm nodes. */
void type_walk_irg(ir_graph *irg,
- type_walk_func *pre,
- type_walk_func *post,
- void *env);
+ type_walk_func *pre,
+ type_walk_func *post,
+ void *env);
/**
Touches every class in specified order:
@deprecated will be removed?
*/
void type_walk_super2sub(type_walk_func *pre,
- type_walk_func *post,
- void *env);
+ type_walk_func *post,
+ void *env);
-/**
- Touches every class in specified order:
- - first the super class
- - second the class itself
- If new classes are created during the traversal these
- will be visited, too. */
+/** Walker for class types in inheritance order.
+ *
+ * Touches every class in specified order:
+ * - first the super class
+ * - second the class itself
+ * If new classes are created during the traversal these
+ * will be visited, too.
+ * Starts the walk at arbitrary classes.
+ * Executes pre when first visiting a class. Executes post after
+ * visiting all superclasses.
+ *
+ * The arguments pre, post, env may be NULL. */
void type_walk_super(type_walk_func *pre,
- type_walk_func *post,
- void *env);
+ type_walk_func *post,
+ void *env);
/** Same as type_walk_super2sub, but visits only class types.
Executes pre for a class if all superclasses have been visited.
@bug ?? something is wrong with this.
*/
void class_walk_super2sub(class_walk_func *pre,
- class_walk_func *post,
- void *env);
+ class_walk_func *post,
+ void *env);
/**
* the entity walk function. A function type for entity walkers.
* @param doit the entity walker function
* @param env environment, will be passed to the walker function
*/
-void walk_types_entities(type *tp,
- entity_walk_func *doit,
- void *env);
+void walk_types_entities(ir_type *tp,
+ entity_walk_func *doit,
+ void *env);
#endif /* _TYPEWALK_H_ */