re PR middle-end/23960 (ICE in compare_values in VRP)

gcc/
	PR tree-optimization/23960
	* fold-const.c (fold_binary): Use op0 and op1 instead of arg0
	and arg1 if we are passing them to fold_build2.

gcc/testsuite/
	PR tree-optimization/23960
	* gcc.c-torture/compile/pr23960.c: New.

From-SVN: r104634
This commit is contained in:
Kazu Hirata 2005-09-26 01:28:50 +00:00 committed by Kazu Hirata
parent 89251091ec
commit 3f1dfb4145
4 changed files with 23 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2005-09-25 Kazu Hirata <kazu@codesourcery.com>
* fold-const.c (fold_binary): Use op0 and op1 instead of arg0
and arg1 if we are passing them to fold_build2.
2005-09-25 Dan Nicolaescu <dann@ics.uci.edu>
PR 23828

View File

@ -9285,7 +9285,7 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
return omit_one_operand (type, integer_one_node, arg0);
case GT_EXPR:
return fold_build2 (NE_EXPR, type, arg0, arg1);
return fold_build2 (NE_EXPR, type, op0, op1);
default:
break;

View File

@ -1,3 +1,8 @@
2005-09-25 Kazu Hirata <kazu@codesourcery.com>
PR tree-optimization/23960
* gcc.c-torture/compile/pr23960.c: New.
2005-09-23 Paul Thomas <pault@gcc.gnu.org>
PR fortran/16861

View File

@ -0,0 +1,12 @@
/* PR tree-optimization/23960
fold-const.c used to construct a comparison node with one pointer
operand and one non-pointer operand. */
void abort (void) __attribute__ ((noreturn));
void
foo (char *d, unsigned long int n)
{
if (d + n > d)
abort ();
}