Change range_handler, was Re: Fix gimple_expr_code?
Adjust the range_handler to not use gimple_expr_code/type. * gimple-range.h (gimple_range_handler): Use gimple_assign and gimple_cond routines to get type and code. * range-op.cc (range_op_handler): Check for integral types.
This commit is contained in:
parent
a5a115258a
commit
ee24da1b98
2 changed files with 10 additions and 4 deletions
|
@ -97,8 +97,12 @@ extern bool gimple_range_calc_op2 (irange &r, const gimple *s,
|
|||
static inline range_operator *
|
||||
gimple_range_handler (const gimple *s)
|
||||
{
|
||||
if ((gimple_code (s) == GIMPLE_ASSIGN) || (gimple_code (s) == GIMPLE_COND))
|
||||
return range_op_handler (gimple_expr_code (s), gimple_expr_type (s));
|
||||
if (gimple_code (s) == GIMPLE_ASSIGN)
|
||||
return range_op_handler (gimple_assign_rhs_code (s),
|
||||
TREE_TYPE (gimple_assign_lhs (s)));
|
||||
if (gimple_code (s) == GIMPLE_COND)
|
||||
return range_op_handler (gimple_cond_code (s),
|
||||
TREE_TYPE (gimple_cond_lhs (s)));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -3341,10 +3341,12 @@ pointer_table::pointer_table ()
|
|||
range_operator *
|
||||
range_op_handler (enum tree_code code, tree type)
|
||||
{
|
||||
// First check if there is apointer specialization.
|
||||
// First check if there is a pointer specialization.
|
||||
if (POINTER_TYPE_P (type))
|
||||
return pointer_tree_table[code];
|
||||
return integral_tree_table[code];
|
||||
if (INTEGRAL_TYPE_P (type))
|
||||
return integral_tree_table[code];
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Cast the range in R to TYPE.
|
||||
|
|
Loading…
Add table
Reference in a new issue