From: Michael Beck Date: Wed, 31 Aug 2005 09:34:57 +0000 (+0000) Subject: Fixes for gcc4.0: void * and pointer to functions are NOT compatible anymore X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=988da4b1dc22814722d336bac25a0e59dac34a22;p=libfirm Fixes for gcc4.0: void * and pointer to functions are NOT compatible anymore [r6540] --- diff --git a/ir/ir/irgwalk.c b/ir/ir/irgwalk.c index 3476f88c3..f879313ed 100644 --- a/ir/ir/irgwalk.c +++ b/ir/ir/irgwalk.c @@ -246,7 +246,7 @@ void irg_walk(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void *env) void irg_walk_graph(ir_graph *irg, irg_walk_func *pre, irg_walk_func *post, void *env) { ir_graph * rem = current_ir_graph; - hook_irg_walk(irg, (void *)pre, (void *)post); + hook_irg_walk(irg, (generic_func *)pre, (generic_func *)post); current_ir_graph = irg; irg_walk(get_irg_end(irg), pre, post, env); current_ir_graph = rem; @@ -430,7 +430,7 @@ void irg_block_walk(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void ir_node *block, *pred; int i; - hook_irg_block_walk(current_ir_graph, node, (void *)pre, (void *)post); + hook_irg_block_walk(current_ir_graph, node, (generic_func *)pre, (generic_func *)post); assert(node); assert(!get_interprocedural_view()); /* interprocedural_view not implemented, because it diff --git a/ir/ir/irgwalk_blk.c b/ir/ir/irgwalk_blk.c index 868c533a5..9dec17973 100644 --- a/ir/ir/irgwalk_blk.c +++ b/ir/ir/irgwalk_blk.c @@ -381,7 +381,7 @@ void irg_walk_blkwise_graph(ir_graph *irg, irg_walk_func *pre, irg_walk_func *po { ir_graph * rem = current_ir_graph; - hook_irg_walk_blkwise(irg, (void *)pre, (void *)post); + hook_irg_walk_blkwise(irg, (generic_func *)pre, (generic_func *)post); current_ir_graph = irg; do_irg_walk_blk(irg, pre, post, env); current_ir_graph = rem; diff --git a/ir/ir/irhooks.h b/ir/ir/irhooks.h index a51fed99a..445be35bc 100644 --- a/ir/ir/irhooks.h +++ b/ir/ir/irhooks.h @@ -65,6 +65,11 @@ typedef enum _if_result_t { IF_RESULT_LAST } if_result_t; +/** + * A generic function type. + */ +typedef void (generic_func)(void); + /** * a hook entry */ @@ -80,9 +85,9 @@ typedef struct hook_entry { void (*_hook_turn_into_id)(void *context, ir_node *node); void (*_hook_new_graph)(void *context, ir_graph *irg, entity *ent); void (*_hook_free_graph)(void *context, ir_graph *irg); - void (*_hook_irg_walk)(void *context, ir_graph *irg, void *pre, void *post); - void (*_hook_irg_walk_blkwise)(void *context, ir_graph *irg, void *pre, void *post); - void (*_hook_irg_block_walk)(void *context, ir_graph *irg, ir_node *node, void *pre, void *post); + void (*_hook_irg_walk)(void *context, ir_graph *irg, generic_func *pre, generic_func *post); + void (*_hook_irg_walk_blkwise)(void *context, ir_graph *irg, generic_func *pre, generic_func *post); + void (*_hook_irg_block_walk)(void *context, ir_graph *irg, ir_node *node, generic_func *pre, generic_func *post); void (*_hook_merge_nodes)(void *context, ir_node **new_node_array, int new_num_entries, ir_node **old_node_array, int old_num_entries, hook_opt_kind opt); void (*_hook_reassociate)(void *context, int start);