re PR middle-end/58564 (possible wrong code bug at -O0)
PR middle-end/58564 * fold-const.c (tree_unary_nonnegative_warnv_p): Use INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE. From-SVN: r203044
This commit is contained in:
parent
f66d089128
commit
d2a365a843
2 changed files with 7 additions and 3 deletions
|
@ -1,5 +1,9 @@
|
|||
2013-09-30 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR middle-end/58564
|
||||
* fold-const.c (tree_unary_nonnegative_warnv_p): Use
|
||||
INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
|
||||
|
||||
PR middle-end/58564
|
||||
* fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
|
||||
optimization, punt if sign_bit_p looked through any zero extension.
|
||||
|
|
|
@ -15448,7 +15448,7 @@ tree_unary_nonnegative_warnv_p (enum tree_code code, tree type, tree op0,
|
|||
if (TREE_CODE (inner_type) == REAL_TYPE)
|
||||
return tree_expr_nonnegative_warnv_p (op0,
|
||||
strict_overflow_p);
|
||||
if (TREE_CODE (inner_type) == INTEGER_TYPE)
|
||||
if (INTEGRAL_TYPE_P (inner_type))
|
||||
{
|
||||
if (TYPE_UNSIGNED (inner_type))
|
||||
return true;
|
||||
|
@ -15456,12 +15456,12 @@ tree_unary_nonnegative_warnv_p (enum tree_code code, tree type, tree op0,
|
|||
strict_overflow_p);
|
||||
}
|
||||
}
|
||||
else if (TREE_CODE (outer_type) == INTEGER_TYPE)
|
||||
else if (INTEGRAL_TYPE_P (outer_type))
|
||||
{
|
||||
if (TREE_CODE (inner_type) == REAL_TYPE)
|
||||
return tree_expr_nonnegative_warnv_p (op0,
|
||||
strict_overflow_p);
|
||||
if (TREE_CODE (inner_type) == INTEGER_TYPE)
|
||||
if (INTEGRAL_TYPE_P (inner_type))
|
||||
return TYPE_PRECISION (inner_type) < TYPE_PRECISION (outer_type)
|
||||
&& TYPE_UNSIGNED (inner_type);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue