This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Bootstrap comparison failure on i686-linux
On Sun, Jan 07, 2001 at 12:14:22AM +0100, Franz Sirl wrote:
> I've found another place to fix and now it bootstraps again for me.
Actually, I just this minute found the same thing, and committed
a very similar fix.
r~
* loop.c (scan_loop): Use xcalloc for the regs array.
(load_mems_and_recount_loop_regs_set): Zero the new memory
received from xrealloc.
Index: loop.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/loop.c,v
retrieving revision 1.314
diff -c -p -d -r1.314 loop.c
*** loop.c 2001/01/06 03:24:57 1.314
--- loop.c 2001/01/06 23:07:53
*************** scan_loop (loop, flags)
*** 627,640 ****
the arrays, if necessary, in load_mems_recount_loop_regs_set. */
regs->size = regs->num + loop_info->mems_idx + 16;
regs->array = (struct loop_reg *)
! xmalloc (regs->size * sizeof (*regs->array));
!
! for (i = 0; i < regs->num; i++)
! {
! regs->array[i].set_in_loop = 0;
! regs->array[i].may_not_optimize = 0;
! regs->array[i].single_usage = NULL_RTX;
! }
count_loop_regs_set (loop, &insn_count);
--- 627,633 ----
the arrays, if necessary, in load_mems_recount_loop_regs_set. */
regs->size = regs->num + loop_info->mems_idx + 16;
regs->array = (struct loop_reg *)
! xcalloc (regs->size, sizeof (*regs->array));
count_loop_regs_set (loop, &insn_count);
*************** load_mems_and_recount_loop_regs_set (loo
*** 8724,8732 ****
/* Grow the array. */
regs->array = (struct loop_reg *)
xrealloc (regs->array, regs->size * sizeof (*regs->array));
}
! for (i = 0; i < regs->num; i++)
{
regs->array[i].set_in_loop = 0;
regs->array[i].may_not_optimize = 0;
--- 8717,8728 ----
/* Grow the array. */
regs->array = (struct loop_reg *)
xrealloc (regs->array, regs->size * sizeof (*regs->array));
+
+ memset (regs->array + old_nregs, 0,
+ (regs->size - old_nregs) * sizeof (*regs->array));
}
! for (i = 0; i < old_nregs; i++)
{
regs->array[i].set_in_loop = 0;
regs->array[i].may_not_optimize = 0;