re PR tree-optimization/32169 (Ice in set_value_range, at tree-vrp.c:326)

./:	PR tree-optimization/32169
	* tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
	CONVERT_EXPR, check whether min and max both converted to an
	overflow infinity representation.
testsuite/:
	PR tree-optimization/32169
	* gcc.c-torture/compile/pr32169.c: New test.

From-SVN: r125591
This commit is contained in:
Ian Lance Taylor 2007-06-09 16:28:31 +00:00 committed by Ian Lance Taylor
parent 84152c25a5
commit 9c4ed267d6
4 changed files with 31 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2007-06-09 Ian Lance Taylor <iant@google.com>
PR tree-optimization/32169
* tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
CONVERT_EXPR, check whether min and max both converted to an
overflow infinity representation.
2007-06-08 Eric Botcazou <ebotcazou@adacore.com>
* reload1.c (fixup_abnormal_edges): Clear bb field for insns

View File

@ -1,3 +1,8 @@
2007-06-09 Ian Lance Taylor <iant@google.com>
PR tree-optimization/32169
* gcc.c-torture/compile/pr32169.c: New test.
2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com>
* gcc.dg/vect/costmodel: New directory.

View File

@ -0,0 +1,17 @@
void f(char);
static inline
void * __memset_generic(char c)
{
f(c);
}
int prepare_startup_playback_urb(
int b,
int c
)
{
char d;
if (b)
__memset_generic(c == ( 1) ? 0x80 : 0);
else
__memset_generic (c == ( 1) ? 0x80 : 0);
}

View File

@ -2208,6 +2208,8 @@ extract_range_from_unary_expr (value_range_t *vr, tree expr)
&& is_gimple_val (new_max)
&& tree_int_cst_equal (new_min, orig_min)
&& tree_int_cst_equal (new_max, orig_max)
&& (!is_overflow_infinity (new_min)
|| !is_overflow_infinity (new_max))
&& (cmp = compare_values (new_min, new_max)) <= 0
&& cmp >= -1)
{