This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/16237] [3.5 Regression] ICE caused by Kenner's big untested (regression causing) patch
- From: "pinskia at physics dot uc dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Jun 2004 21:51:42 -0000
- Subject: [Bug middle-end/16237] [3.5 Regression] ICE caused by Kenner's big untested (regression causing) patch
- References: <20040627212339.16237.pinskia@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From pinskia at physics dot uc dot edu 2004-06-27 21:51 -------
Subject: Re: [3.5 Regression] ICE caused by Kenner's big untested (regression causing) patch
>
> I will also note RTH only fixed it for COMPONENT_REFs and not
> ARRAY_REFs see <http://gcc.gnu.org/ ml/gcc-patches/2004-06/msg01906.html>.
>
> Well, I thought he did both, but that code has been changed a few times
> since then. Right now, it's certainly doing both cases and only
> filling in the operand if not a constant.
>
> Try this: if we understand the issue properly, this should fix it. Let
> me know. But I'd also like to know why you're seeing them filled in!
that will not work as my problem is with ARRAY_REF and not COMPONENT_REF.
Andrew
>
> *** fold-const.c.old Sun Jun 27 17:45:23 2004
> --- fold-const.c Sun Jun 27 17:46:59 2004
> *************** operand_equal_p (tree arg0, tree arg1, u
> *** 2483,2487 ****
> TREE_OPERAND (arg1, 0), flags);
>
> - case COMPONENT_REF:
> case ARRAY_REF:
> case ARRAY_RANGE_REF:
> --- 2483,2486 ----
> *************** operand_equal_p (tree arg0, tree arg1, u
> *** 2489,2493 ****
> TREE_OPERAND (arg1, 0), flags)
> && operand_equal_p (TREE_OPERAND (arg0, 1),
> ! TREE_OPERAND (arg1, 1), flags));
>
> case BIT_FIELD_REF:
> --- 2488,2506 ----
> TREE_OPERAND (arg1, 0), flags)
> && operand_equal_p (TREE_OPERAND (arg0, 1),
> ! TREE_OPERAND (arg1, 1), flags)
> ! && operand_equal_p (TREE_OPERAND (arg0, 2),
> ! TREE_OPERAND (arg1, 2), flags)
> ! && operand_equal_p (TREE_OPERAND (arg0, 3),
> ! TREE_OPERAND (arg1, 3), flags));
> !
> !
> ! case COMPONENT_REF:
> ! return (operand_equal_p (TREE_OPERAND (arg0, 0),
> ! TREE_OPERAND (arg1, 0), flags)
> ! && operand_equal_p (TREE_OPERAND (arg0, 1),
> ! TREE_OPERAND (arg1, 1), flags)
> ! && operand_equal_p (TREE_OPERAND (arg0, 2),
> ! TREE_OPERAND (arg1, 2), flags));
> !
>
> case BIT_FIELD_REF:
>
>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16237