aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/local-alloc.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c
index ddcd475..42c760f 100644
--- a/gcc/local-alloc.c
+++ b/gcc/local-alloc.c
@@ -337,9 +337,9 @@ local_alloc ()
qty_n_refs = (int *) alloca (max_qty * sizeof (int));
qty_changes_size = (char *) alloca (max_qty * sizeof (char));
- reg_qty = (int *) alloca (max_regno * sizeof (int));
- reg_offset = (char *) alloca (max_regno * sizeof (char));
- reg_next_in_qty = (int *) alloca (max_regno * sizeof (int));
+ reg_qty = (int *) xmalloc (max_regno * sizeof (int));
+ reg_offset = (char *) xmalloc (max_regno * sizeof (char));
+ reg_next_in_qty = (int *) xmalloc(max_regno * sizeof (int));
/* Allocate the reg_renumber array */
allocate_reg_info (max_regno, FALSE, TRUE);
@@ -406,6 +406,10 @@ local_alloc ()
alloca (0);
#endif
}
+
+ free (reg_qty);
+ free (reg_offset);
+ free (reg_next_in_qty);
}
/* Depth of loops we are in while in update_equiv_regs. */