fold-const.c (fold_single_bit_test): Fix overflow test.
2013-08-30 Richard Biener <rguenther@suse.de> * fold-const.c (fold_single_bit_test): Fix overflow test. From-SVN: r202103
This commit is contained in:
parent
f7e088e7de
commit
26d7570303
@ -1,3 +1,7 @@
|
||||
2013-08-30 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* fold-const.c (fold_single_bit_test): Fix overflow test.
|
||||
|
||||
2013-08-30 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* function.c (assign_parm_setup_reg): For a parameter passed by pointer
|
||||
|
@ -6634,10 +6634,10 @@ fold_single_bit_test (location_t loc, enum tree_code code,
|
||||
not overflow, adjust BITNUM and INNER. */
|
||||
if (TREE_CODE (inner) == RSHIFT_EXPR
|
||||
&& TREE_CODE (TREE_OPERAND (inner, 1)) == INTEGER_CST
|
||||
&& TREE_INT_CST_HIGH (TREE_OPERAND (inner, 1)) == 0
|
||||
&& host_integerp (TREE_OPERAND (inner, 1), 1)
|
||||
&& bitnum < TYPE_PRECISION (type)
|
||||
&& 0 > compare_tree_int (TREE_OPERAND (inner, 1),
|
||||
bitnum - TYPE_PRECISION (type)))
|
||||
&& (TREE_INT_CST_LOW (TREE_OPERAND (inner, 1))
|
||||
< (unsigned) (TYPE_PRECISION (type) - bitnum)))
|
||||
{
|
||||
bitnum += TREE_INT_CST_LOW (TREE_OPERAND (inner, 1));
|
||||
inner = TREE_OPERAND (inner, 0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user