From: Michael Beck Date: Wed, 2 Dec 2009 01:12:05 +0000 (+0000) Subject: BugFix: Fixed off-by-one error introduced by r26724. X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=e559d782f96353796811669a9d7f9c7b369e2f28;p=libfirm BugFix: Fixed off-by-one error introduced by r26724. [r26768] --- diff --git a/ir/be/beabi.c b/ir/be/beabi.c index b4a390f4f..99d60f5d8 100644 --- a/ir/be/beabi.c +++ b/ir/be/beabi.c @@ -771,8 +771,10 @@ static ir_node *adjust_call(be_abi_irg_t *env, ir_node *irn, ir_node *curr_sp) int n = 0; int curr_res_proj = pn_be_Call_first_res + n_reg_results; pset_new_iterator_t iter; + int n_ins; - in = ALLOCAN(ir_node *, pset_new_size(&destroyed_regs) + n_reg_results); + n_ins = (int)pset_new_size(&destroyed_regs) + n_reg_results + 1; + in = ALLOCAN(ir_node *, n_ins); /* also keep the stack pointer */ set_irn_link(curr_sp, (void*) sp); @@ -796,6 +798,7 @@ static ir_node *adjust_call(be_abi_irg_t *env, ir_node *irn, ir_node *curr_sp) set_irn_link(proj, (void*) reg); in[n++] = proj; } + assert(n <= n_ins); /* create the Keep for the caller save registers */ keep = be_new_Keep(bl, n, in);