This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]