]> git.ipfire.org Git - thirdparty/gcc.git/commit
Add tree_fits_uhwi_p tests to BIT_FIELD_REF folder
authorRichard Sandiford <richard.sandiford@linaro.org>
Thu, 4 Jan 2018 18:05:10 +0000 (18:05 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Thu, 4 Jan 2018 18:05:10 +0000 (18:05 +0000)
commit1de1073520a877b46a0b93c5b0eb4c0b29b97e84
tree00a25a55d43f38ef6035f5a5034d458d1e0973de
parent88654ce63de73fc51a47e7d54070c2c0b6b2f34b
Add tree_fits_uhwi_p tests to BIT_FIELD_REF folder

The first BIT_FIELD_REF folding pattern assumed without checking that
operands satisfy tree_fits_uhwi_p.  The second pattern does check this:

      /* On constants we can use native encode/interpret to constant
         fold (nearly) all BIT_FIELD_REFs.  */
      if (CONSTANT_CLASS_P (arg0)
          && can_native_interpret_type_p (type)
          && BITS_PER_UNIT == 8
          && tree_fits_uhwi_p (op1)
          && tree_fits_uhwi_p (op2))

so this patch adds the checks to the first pattern too.  This is needed
for POLY_INT_CST bit positions.

2018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* fold-const.c (fold_ternary_loc): Check tree_fits_uhwi_p before
using tree_to_uhwi.

From-SVN: r256258
gcc/ChangeLog
gcc/fold-const.c