* fold-const.c (make_range): Do not widen the type of the expression.
From-SVN: r20545
This commit is contained in:
parent
b74390dec9
commit
7d12cee1f1
@ -65,6 +65,8 @@ Wed Jun 17 15:57:48 EDT 1998 Andrew MacLeod (amacleod@cygnus.com)
|
||||
|
||||
Wed Jun 17 08:38:13 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* fold-const.c (make_range): Do not widen the type of the expression.
|
||||
|
||||
* expr.c (check_max_integer_computation_mode): New function.
|
||||
(expand_expr): Avoid integer computations in modes wider than
|
||||
MAX_INTEGER_COMPUTATION_MODE.
|
||||
|
@ -2821,6 +2821,7 @@ make_range (exp, pin_p, plow, phigh)
|
||||
{
|
||||
enum tree_code code;
|
||||
tree arg0, arg1, type = NULL_TREE;
|
||||
tree orig_type = NULL_TREE;
|
||||
int in_p, n_in_p;
|
||||
tree low, high, n_low, n_high;
|
||||
|
||||
@ -2958,6 +2959,11 @@ make_range (exp, pin_p, plow, phigh)
|
||||
continue;
|
||||
|
||||
case NOP_EXPR: case NON_LVALUE_EXPR: case CONVERT_EXPR:
|
||||
if (orig_type == NULL_TREE)
|
||||
orig_type = type;
|
||||
if (TYPE_PRECISION (type) > TYPE_PRECISION (orig_type))
|
||||
break;
|
||||
|
||||
if (! INTEGRAL_TYPE_P (type)
|
||||
|| (low != 0 && ! int_fits_type_p (low, type))
|
||||
|| (high != 0 && ! int_fits_type_p (high, type)))
|
||||
|
Loading…
x
Reference in New Issue
Block a user