re PR middle-end/37078 (ICE in set_value_range, at tree-vrp.c:401 when compiling gmp 4.2.3)

2008-08-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37078
	* tree-vrp.c (extract_range_from_unary_expr): Avoid generating
	[+INF, +INF] ranges.

	* gcc.c-torture/compile/pr37078.c: New testcase.

From-SVN: r139501
This commit is contained in:
Richard Guenther 2008-08-22 21:13:00 +00:00 committed by Richard Biener
parent d3cbd7deea
commit 36159cf857
4 changed files with 19 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2008-08-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/37078
* tree-vrp.c (extract_range_from_unary_expr): Avoid generating
[+INF, +INF] ranges.
2008-08-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/37143

View File

@ -1,3 +1,8 @@
2008-08-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/37078
* gcc.c-torture/compile/pr37078.c: New testcase.
2008-08-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/37143

View File

@ -0,0 +1,6 @@
int foo (int b)
{
if (b == (int)0x80000000)
return __builtin_abs (b);
return 0;
}

View File

@ -7459,7 +7459,8 @@ vect_create_cond_for_align_checks (loop_vec_info loop_vinfo,
addr_tmp = create_tmp_var (int_ptrsize_type, tmp_name);
add_referenced_var (addr_tmp);
addr_tmp_name = make_ssa_name (addr_tmp, NULL);
addr_stmt = gimple_build_assign (addr_tmp_name, addr_base);
addr_stmt = gimple_build_assign_with_ops (NOP_EXPR, addr_tmp_name,
addr_base, NULL_TREE);
SSA_NAME_DEF_STMT (addr_tmp_name) = addr_stmt;
gimple_seq_add_stmt (cond_expr_stmt_list, addr_stmt);