Commit 109bd2e6 by Bin Cheng Committed by Bin Cheng

re PR tree-optimization/66449 (ICE: in build2_stat, at tree.c:4376 with -O3)


	PR tree-optimization/66449
	* tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
	POINTER_PLUS_EXPR for pointers.

	gcc/testsuite
	PR tree-optimization/66449
	* gcc.dg/vect/pr66449.c: New test.

From-SVN: r224769
parent 350911e6
2015-06-23 Bin Cheng <bin.cheng@arm.com>
PR tree-optimization/66449
* tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
POINTER_PLUS_EXPR for pointers.
2015-06-23 Alan Modra <amodra@gmail.com> 2015-06-23 Alan Modra <amodra@gmail.com>
* rtlanal.c (commutative_operand_precedence): Correct comments. * rtlanal.c (commutative_operand_precedence): Correct comments.
......
2015-06-23 Bin Cheng <bin.cheng@arm.com>
PR tree-optimization/66449
* gcc.dg/vect/pr66449.c: New test.
2015-06-22 Pierre-Marie de Rodat <derodat@adacore.com> 2015-06-22 Pierre-Marie de Rodat <derodat@adacore.com>
* g++.dg/other/dump-ada-spec-5.C: New test. * g++.dg/other/dump-ada-spec-5.C: New test.
......
/* { dg-do compile } */
/* { dg-options "-O3" } */
void *fn1(void *p1, void *p2, long p3)
{
long a = (long)p1, b = (long)p2, c = p3;
while (c)
{
int d = ((int *)b)[0];
c--;
((char *)a)[0] = d;
a++;
}
return 0;
}
...@@ -3888,7 +3888,12 @@ loop_exits_before_overflow (tree base, tree step, ...@@ -3888,7 +3888,12 @@ loop_exits_before_overflow (tree base, tree step,
by proving the reverse conditions are false using loop's initial by proving the reverse conditions are false using loop's initial
condition. */ condition. */
stepped = fold_build2 (PLUS_EXPR, TREE_TYPE (base), base, step); if (POINTER_TYPE_P (TREE_TYPE (base)))
code = POINTER_PLUS_EXPR;
else
code = PLUS_EXPR;
stepped = fold_build2 (code, TREE_TYPE (base), base, step);
if (operand_equal_p (stepped, civ->base, 0)) if (operand_equal_p (stepped, civ->base, 0))
{ {
if (tree_int_cst_sign_bit (step)) if (tree_int_cst_sign_bit (step))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment