From: Roger Sayle Date: Thu, 17 Mar 2005 01:36:15 +0000 (+0000) Subject: re PR rtl-optimization/17825 (ICE in reg_bitfield_target_p) X-Git-Tag: releases/gcc-3.4.4~152 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c8f4dda26a0d8906d292c5af7afce57156e9eb2c;p=thirdparty%2Fgcc.git re PR rtl-optimization/17825 (ICE in reg_bitfield_target_p) PR rtl-optimization/17825 Backport from mainline 2004-11-27 Jakub Jelinek * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new) or not. PR rtl-optimization/17825 Backport from mainline 2004-11-27 Jakub Jelinek * gcc.c-torture/compile/20041119-1.c: New test. From-SVN: r96591 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7fdc8e0eb2bd..aac33b2b1374 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2005-03-16 Roger Sayle + + PR rtl-optimization/17825 + Backport from mainline + 2004-11-27 Jakub Jelinek + * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new) + or not. + 2005-03-16 Roger Sayle PR target/18371 diff --git a/gcc/combine.c b/gcc/combine.c index 0720f3893e4b..0a3f3816f999 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -3418,10 +3418,10 @@ subst (rtx x, rtx from, rtx to, int in_dest, int unique_copy) /* If this is a register being set, ignore it. */ new = XEXP (x, i); if (in_dest - && (code == SUBREG || code == STRICT_LOW_PART - || code == ZERO_EXTRACT) && i == 0 - && GET_CODE (new) == REG) + && (((code == SUBREG || code == ZERO_EXTRACT) + && GET_CODE (new) == REG) + || code == STRICT_LOW_PART)) ; else if (COMBINE_RTX_EQUAL_P (XEXP (x, i), from)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 568120334525..4c207599e380 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2005-03-16 Roger Sayle + + PR rtl-optimization/17825 + Backport from mainline + 2004-11-27 Jakub Jelinek + * gcc.c-torture/compile/20041119-1.c: New test. + 2005-03-08 Mark Mitchell PR c++/20142