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:
Aldy Hernandez 2020-08-03 18:30:30 +02:00
parent c56684fd61
commit 6c4763fa5b

View File

@ -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.