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:
parent
a811c67259
commit
ee16720759
2 changed files with 13 additions and 4 deletions
|
@ -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.
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Add table
Reference in a new issue