Support dtor sections on Mach-O.
[libfirm] / ir / ir / irssacons.c
index 7dd6df8..aa5ec78 100644 (file)
  * @author  Michael Beck
  * @version $Id$
  */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include "config.h"
 
 #include "ircons_t.h"
 #include "irgraph_t.h"
 #include "irnode_t.h"
 #include "irgwalk.h"
 
-typedef struct walk_env_t {
-       int n_loc;   /**< Number of newly allocated locations. */
-} walk_env;
-
 /**
  * Post-walker: prepare the graph nodes for new SSA construction cycle by allocation
  * new arrays.
  */
-static void prepare_nodes(ir_node *irn, void *ctx) {
-       walk_env *env = ctx;
+static void prepare_nodes(ir_node *irn, void *env) {
+       (void)env;
 
        switch (get_irn_opcode(irn)) {
        case iro_Block:
@@ -52,7 +46,6 @@ static void prepare_nodes(ir_node *irn, void *ctx) {
                memset(irn->attr.block.graph_arr, 0, sizeof(ir_node *) * current_ir_graph->n_loc);
                irn->attr.block.phis       = NULL;
                break;
-#if PRECISE_EXC_CONTEXT
        /* note that the frag array must be cleared first, else firm_alloc_frag_arr()
           will not allocate new memory. */
        case iro_Quot:
@@ -95,7 +88,6 @@ static void prepare_nodes(ir_node *irn, void *ctx) {
                irn->attr.bound.exc.frag_arr = NULL;
                firm_alloc_frag_arr(irn, op_Bound, &irn->attr.bound.exc.frag_arr);
                break;
-#endif
        default:
                ;
        }
@@ -113,8 +105,6 @@ static void prepare_nodes(ir_node *irn, void *ctx) {
  * to construct new values.
  */
 void ssa_cons_start(ir_graph *irg, int n_loc) {
-       walk_env env;
-
        /* for now we support only phase_high graphs */
        assert(irg->phase_state == phase_high);
 
@@ -128,13 +118,15 @@ void ssa_cons_start(ir_graph *irg, int n_loc) {
         * seems worth to do this.  First, we have to check if they really exists and
         * then clear them.  We do not expect SSA construction is used often.
         */
-       irg_walk_graph(irg, NULL, prepare_nodes, &env);
+       irg_walk_graph(irg, NULL, prepare_nodes, NULL);
 }
 
 /**
  * mature all immature Blocks.
  */
 static void finish_block(ir_node *block, void *env) {
+       (void)env;
+
        if (!get_Block_matured(block))
                mature_immBlock(block);
 }