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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
   Last reconfirmed|                            |2021-04-22
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |ASSIGNED

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
It's similar, yes.

              wi::overflow_type ovf = wi::OVF_NONE;
              off = wi::mul (off, (HOST_WIDE_INT)BITS_PER_UNIT, SIGNED, &ovf);
              if (ovf == wi::OVF_NONE)

doesn't like me though.

In file included from /home/rguenther/src/gcc3/gcc/coretypes.h:469:0,
                 from /home/rguenther/src/gcc3/gcc/tree-ssa-sccvn.c:23:
/home/rguenther/src/gcc3/gcc/poly-int.h: In instantiation of 'poly_int<N, C>&
poly_int<N, T>::operator=(const poly_int_pod<N, Ca>&) [with Ca =
generic_wide_int<fixed_wide_int_storage<192> >; unsigned int N = 1; C = long
int]':
/home/rguenther/src/gcc3/gcc/tree-ssa-sccvn.c:1544:70:   required from here
/home/rguenther/src/gcc3/gcc/poly-int.h:693:21: error: cannot convert 'const
generic_wide_int<fixed_wide_int_storage<192> >' to 'long int' in assignment
     this->coeffs[i] = a.coeffs[i];
     ~~~~~~~~~~~~~~~~^~~~~~~~~~~

neither attempts to go via poly_offset_int and a "fits uhwi"
(fold_ctor_referece takes an unsigned offset).

Reply via email to