On 11/19/13 05:00, Richard Sandiford wrote:
The (x >> c) << c folding has:

          && tree_fits_shwi_p (arg1)
          && TREE_INT_CST_LOW (arg1) < prec
          && tree_fits_shwi_p (TREE_OPERAND (arg0, 1))
          && TREE_INT_CST_LOW (TREE_OPERAND (arg0, 1)) < prec)

At first glance the use of tree_fits_shwi_p rather than tree_fits_uhwi_p
made me think this allows negative shift counts, but of course TREE_INT_CST_LOW
is unsigned.  I think it'd be clearer to use tree_fits_uhwi_p instead.

Thanks,
Richard


gcc/
        * fold-const.c (fold_binary_loc): Use unsigned rather than signed
        HOST_WIDE_INTs when folding (x >> c) << c.
OK.
jeff

Reply via email to