re PR tree-optimization/56539 (ICE: verify_ssa failed: caused by -foptimize-sibling-calls)

PR tree-optimization/56539
	* tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
	instead of GSI_CONTINUE_LINKING as last argument to
	force_gimple_operand_gsi.

	* gcc.c-torture/compile/pr56539.c: New test.

From-SVN: r196511
This commit is contained in:
Jakub Jelinek 2013-03-07 00:26:42 +01:00 committed by Jakub Jelinek
parent 04414cc687
commit c1781047ab
4 changed files with 20 additions and 3 deletions

View file

@ -1,5 +1,10 @@
2013-03-06 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/56539
* tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
instead of GSI_CONTINUE_LINKING as last argument to
force_gimple_operand_gsi. Adjust function comment.
* config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
aarch64-cores.def.

View file

@ -1,3 +1,8 @@
2013-03-06 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/56539
* gcc.c-torture/compile/pr56539.c: New test.
2013-03-06 Kai Tietz <ktietz@redhat.com>
* gcc.dg/lto/20090914-2_0.c: Skip for mingw and cygwin

View file

@ -0,0 +1,7 @@
/* PR tree-optimization/56539 */
short
foo (const char *x, unsigned y)
{
return y > 1 ? (x[y - 1] - '0') + 10 * foo (x, y - 1) : (*x - '0');
}

View file

@ -599,8 +599,8 @@ add_successor_phi_arg (edge e, tree var, tree phi_arg)
}
/* Creates a GIMPLE statement which computes the operation specified by
CODE, OP0 and OP1 to a new variable with name LABEL and inserts the
statement in the position specified by GSI and UPDATE. Returns the
CODE, ACC and OP1 to a new variable with name LABEL and inserts the
statement in the position specified by GSI. Returns the
tree node of the statement's result. */
static tree
@ -622,7 +622,7 @@ adjust_return_value_with_ops (enum tree_code code, const char *label,
fold_convert (TREE_TYPE (op1), acc),
op1));
rhs = force_gimple_operand_gsi (&gsi, rhs,
false, NULL, true, GSI_CONTINUE_LINKING);
false, NULL, true, GSI_SAME_STMT);
stmt = gimple_build_assign (result, rhs);
}