[gnu.gcc.bug] bug report version 1.36

mccanne@HELIOS.EE.LBL.GOV (Steven McCanne) (01/20/90)

This problem surfaced when I was mucking around with the rtx struct.
The bcopy's in copy_for_inline and copy_rtx_if_shared assume that 
the size of an rtunion and the combined size of the code/mode/etc fields 
equal sizeof(int).

Steve McCanne

*** integrate.c.~1~	Thu Oct 12 16:53:16 1989
--- integrate.c	Fri Jan 19 19:42:14 1990
***************
*** 521,527 ****
    /* Replace this rtx with a copy of itself.  */
  
    x = rtx_alloc (code);
!   bcopy (orig, x, sizeof (int) * (GET_RTX_LENGTH (code) + 1));
  
    /* Now scan the subexpressions recursively.
       We can store any replaced subexpressions directly into X
--- 521,528 ----
    /* Replace this rtx with a copy of itself.  */
  
    x = rtx_alloc (code);
!   bcopy (orig, x, sizeof (*x) - sizeof (x->fld) +
! 	 sizeof (x->fld[0]) * GET_RTX_LENGTH (code));
  
    /* Now scan the subexpressions recursively.
       We can store any replaced subexpressions directly into X

*** emit-rtl.c.~1~	Wed Sep 20 21:33:11 1989
--- emit-rtl.c	Fri Jan 19 19:44:28 1990
***************
*** 646,652 ****
        unshare_copies++;
  
        copy = rtx_alloc (code);
!       bcopy (x, copy, sizeof (int) * (GET_RTX_LENGTH (code) + 1));
        x = copy;
        copied = 1;
      }
--- 646,653 ----
        unshare_copies++;
  
        copy = rtx_alloc (code);
!       bcopy (x, copy, sizeof (*copy) - sizeof (copy->fld) +
! 	     sizeof (copy->fld[0]) * GET_RTX_LENGTH (code));
        x = copy;
        copied = 1;
      }