https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89195

--- Comment #1 from Wilco <wilco at gcc dot gnu.org> ---
make_extraction does:

      if (MEM_P (inner))
        {
          poly_int64 offset;

          /* POS counts from lsb, but make OFFSET count in memory order.  */
          if (BYTES_BIG_ENDIAN)
            offset = bits_to_bytes_round_down (GET_MODE_PRECISION (is_mode)
                                               - len - pos);
          else
            offset = pos / BITS_PER_UNIT;
          new_rtx = adjust_address_nv (inner, tmode, offset);

len is unsigned HOST_WIDE_INT, so bits_to_bytes_round_down does an unsigned
division...

Reply via email to