From: Richard Henderson Date: Mon, 14 Oct 2002 02:36:25 +0000 (-0700) Subject: * rtl.c (shallow_copy_rtx): Use memcpy for the entire node. X-Git-Tag: releases/gcc-3.3.0~2313 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=11e5489b1ecfb256cc64970a87b32f0cd856ec15;p=thirdparty%2Fgcc.git * rtl.c (shallow_copy_rtx): Use memcpy for the entire node. From-SVN: r58102 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index feb9a9db83b9..7bde8dd690e8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2002-10-13 Richard Henderson + + * rtl.c (shallow_copy_rtx): Use memcpy for the entire node. + 2002-10-12 Neil Booth PR preprocessor/7862 diff --git a/gcc/rtl.c b/gcc/rtl.c index c8b36b77fb70..065c02b40c3d 100644 --- a/gcc/rtl.c +++ b/gcc/rtl.c @@ -387,19 +387,12 @@ rtx shallow_copy_rtx (orig) rtx orig; { - int i; RTX_CODE code = GET_CODE (orig); - rtx copy = rtx_alloc (code); - - PUT_MODE (copy, GET_MODE (orig)); - RTX_FLAG (copy, in_struct) = RTX_FLAG (orig, in_struct); - RTX_FLAG (copy, volatil) = RTX_FLAG (orig, volatil); - RTX_FLAG (copy, unchanging) = RTX_FLAG (orig, unchanging); - RTX_FLAG (copy, integrated) = RTX_FLAG (orig, integrated); - RTX_FLAG (copy, frame_related) = RTX_FLAG (orig, frame_related); + size_t n = GET_RTX_LENGTH (code); + rtx copy = ggc_alloc_rtx (n); - for (i = 0; i < GET_RTX_LENGTH (code); i++) - copy->fld[i] = orig->fld[i]; + memcpy (copy, orig, + sizeof (struct rtx_def) + sizeof (rtunion) * (n - 1)); return copy; }