Commit 3597c8de by Jakub Jelinek Committed by Jakub Jelinek

re PR tree-optimization/64269 (ICE with -O3 enabled on Ubuntu 14.04)

	PR tree-optimization/64269
	* tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
	len2 or diff are too large.

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

From-SVN: r218669
parent 8c7b9094
2014-12-12 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/64269
* tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
len2 or diff are too large.
2014-12-12 Richard Biener <rguenther@suse.de>
PR middle-end/64280
2014-12-12 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/64269
* gcc.c-torture/compile/pr64269.c: New test.
2014-12-12 Richard Biener <rguenther@suse.de>
PR middle-end/64280
......
/* PR tree-optimization/64269 */
void
foo (char *p)
{
__SIZE_TYPE__ s = ~(__SIZE_TYPE__)0;
*p = 0;
__builtin_memset (p + 1, 0, s);
}
......@@ -1288,7 +1288,8 @@ simplify_builtin_call (gimple_stmt_iterator *gsi_p, tree callee2)
use_operand_p use_p;
if (!tree_fits_shwi_p (val2)
|| !tree_fits_uhwi_p (len2))
|| !tree_fits_uhwi_p (len2)
|| compare_tree_int (len2, 1024) == 1)
break;
if (is_gimple_call (stmt1))
{
......@@ -1354,7 +1355,8 @@ simplify_builtin_call (gimple_stmt_iterator *gsi_p, tree callee2)
is not constant, or is bigger than memcpy length, bail out. */
if (diff == NULL
|| !tree_fits_uhwi_p (diff)
|| tree_int_cst_lt (len1, diff))
|| tree_int_cst_lt (len1, diff)
|| compare_tree_int (diff, 1024) == 1)
break;
/* Use maximum of difference plus memset length and memcpy length
......
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