This is the mail archive of the gcc-patches@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]

[


Now that types have been cleaned up, we can remove this bit of 
hackery from get_expr_operands.  Which, incidentally, didn't do
what you'd expect -- we'd fail to create VDEFs for such things
when the indirect_ref was on the lhs.

Bootstrapped and tested on alphaev67-linux.


r~


        * tree-dfa.c (get_expr_operands): Remove handling of PLUS_EXPR
        inside INDIRECT_REF.

Index: tree-dfa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-dfa.c,v
retrieving revision 1.1.4.181
retrieving revision 1.1.4.182
diff -c -p -d -r1.1.4.181 -r1.1.4.182
*** tree-dfa.c	19 Nov 2003 20:10:00 -0000	1.1.4.181
--- tree-dfa.c	21 Nov 2003 07:12:29 -0000	1.1.4.182
*************** get_expr_operands (tree stmt, tree *expr
*** 393,411 ****
  	  return;
  	}
  
-       /* This single case might not have been folded to an array reference
- 	 if the immediate doesn't exactly divide the referenced type.  This
- 	 case is likely to be undefined in C, but perhaps not others.  */
-       else if (TREE_CODE (ptr) == PLUS_EXPR)
- 	{
- 	  if (TREE_CODE (TREE_OPERAND (ptr, 1)) != INTEGER_CST)
- 	    abort ();
- 	  ptr = TREE_OPERAND (ptr, 0);
- 	  if (TREE_CODE (ptr) != ADDR_EXPR)
- 	    abort ();
- 	  pptr = &TREE_OPERAND (ptr, 0);
- 	}
- 
        /* Everything else should have been folded elsewhere.  */
        else
  	abort ();
--- 393,398 ----


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