re PR tree-optimization/18663 (ACATS ICE cc1221d expected integer_cst, have nop_expr in tree_int_cst_lt, at tree.c:3779)

PR tree-optimization/18663
	* tree-ssa-dom.c (extract_range_from_cond): Return 0
	if the type has variable bounds.

From-SVN: r95320
This commit is contained in:
Eric Botcazou 2005-02-21 08:27:14 +01:00 committed by Eric Botcazou
parent a811c67259
commit ee16720759
2 changed files with 13 additions and 4 deletions

View file

@ -1,3 +1,9 @@
2005-02-21 Eric Botcazou <ebotcazou@libertysurf.fr>
PR tree-optimization/18663
* tree-ssa-dom.c (extract_range_from_cond): Return 0
if the type has variable bounds.
2005-02-20 Kazu Hirata <kazu@cs.umass.edu>
* gcse.c: Remove an obsolete comment.

View file

@ -3189,16 +3189,19 @@ extract_range_from_cond (tree cond, tree *hi_p, tree *lo_p, int *inverted_p)
tree op1 = TREE_OPERAND (cond, 1);
tree high, low, type;
int inverted;
type = TREE_TYPE (op1);
/* Experiments have shown that it's rarely, if ever useful to
record ranges for enumerations. Presumably this is due to
the fact that they're rarely used directly. They are typically
cast into an integer type and used that way. */
if (TREE_CODE (TREE_TYPE (op1)) != INTEGER_TYPE)
if (TREE_CODE (type) != INTEGER_TYPE
/* We don't know how to deal with types with variable bounds. */
|| TREE_CODE (TYPE_MIN_VALUE (type)) != INTEGER_CST
|| TREE_CODE (TYPE_MAX_VALUE (type)) != INTEGER_CST)
return 0;
type = TREE_TYPE (op1);
switch (TREE_CODE (cond))
{
case EQ_EXPR: