mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-20 19:01:12 +08:00
Avoid shifting by amounts larger than target int in irange self-tests.
gcc/ChangeLog: PR tree-optimization/96430 * range-op.cc (operator_tests): Do not shift by 31 on targets with integer's smaller than 32 bits.
This commit is contained in:
parent
c56684fd61
commit
6c4763fa5b
@ -3527,15 +3527,16 @@ operator_tests ()
|
||||
}
|
||||
|
||||
// signed: ~[-1] = OP1 >> 31
|
||||
{
|
||||
widest_irange lhs (INT (-1), INT (-1), VR_ANTI_RANGE);
|
||||
widest_irange shift (INT (31), INT (31));
|
||||
widest_irange op1;
|
||||
op_rshift.op1_range (op1, integer_type_node, lhs, shift);
|
||||
widest_irange negatives = range_negatives (integer_type_node);
|
||||
negatives.intersect (op1);
|
||||
ASSERT_TRUE (negatives.undefined_p ());
|
||||
}
|
||||
if (TYPE_PRECISION (integer_type_node) > 31)
|
||||
{
|
||||
widest_irange lhs (INT (-1), INT (-1), VR_ANTI_RANGE);
|
||||
widest_irange shift (INT (31), INT (31));
|
||||
widest_irange op1;
|
||||
op_rshift.op1_range (op1, integer_type_node, lhs, shift);
|
||||
widest_irange negatives = range_negatives (integer_type_node);
|
||||
negatives.intersect (op1);
|
||||
ASSERT_TRUE (negatives.undefined_p ());
|
||||
}
|
||||
}
|
||||
|
||||
// Run all of the selftests within this file.
|
||||
|
Loading…
x
Reference in New Issue
Block a user