This is the mail archive of the gcc-bugs@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]
Other format: [Raw text]

[Bug middle-end/16237] [3.5 Regression] ICE caused by Kenner's big untested (regression causing) patch


------- 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


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