- int n_callees = get_Call_n_callees(call);
- ir_node * post_block = get_nodes_Block(call); /* block nach dem Aufruf */
- ir_node * pre_block = create_Block(get_Block_n_cfgpreds(post_block),
- get_Block_cfgpred_arr(post_block)); /* block vor dem Aufruf (mit CallBegin) */
- ir_node * except_block = NULL, * proj;
- ir_node * jmp = new_Break(); /* Sprung für intraprozedurale Darstellung (in
- * pre_block) */
- ir_node * call_begin = new_CallBegin(call); /* (in pre_block) */
- ir_node ** in = NEW_ARR_F(ir_node *, n_callees);
- entity * caller = get_irg_ent(current_ir_graph); /* entity des aktuellen ir_graph */
- entity ** callees = NEW_ARR_F(entity *, n_callees); /* aufgerufene Methoden: entity */
- ir_graph ** irgs = NEW_ARR_F(ir_graph *, n_callees); /* aufgerufene Methoden: ir_graph */
- irg_data_t ** data = NEW_ARR_F(irg_data_t *, n_callees); /* aufgerufene Methoden: irg_data_t */
- int i;
+ int i, n_callees;
+ ir_node *post_block, *pre_block, *except_block, * proj, *jmp, *call_begin;
+ ir_node ** in;
+ entity * caller;
+ entity ** callees;
+ ir_graph ** irgs;
+ irg_data_t ** data;
+
+ n_callees = get_Call_n_callees(call);
+ post_block = get_nodes_block(call); /* block nach dem Aufruf */
+ pre_block = create_Block(get_Block_n_cfgpreds(post_block),
+ get_Block_cfgpred_arr(post_block)); /* block vor dem Aufruf (mit CallBegin) */
+ except_block = NULL;
+ jmp = new_Break(); /* Sprung für intraprozedurale Darstellung (in * pre_block) */
+ call_begin = new_CallBegin(call); /* (in pre_block) */
+ /* CallBegin might be entry to endless recursion. */
+ add_End_keepalive(get_irg_end(get_irn_irg(pre_block)), pre_block);
+
+ in = NEW_ARR_F(ir_node *, n_callees);
+ caller = get_irg_entity(current_ir_graph); /* entity des aktuellen ir_graph */
+ callees = NEW_ARR_F(entity *, n_callees); /* aufgerufene Methoden: entity */
+ irgs = NEW_ARR_F(ir_graph *, n_callees); /* aufgerufene Methoden: ir_graph */
+ data = NEW_ARR_F(irg_data_t *, n_callees); /* aufgerufene Methoden: irg_data_t */