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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|unknown                     |8.0.1
   Target Milestone|8.0                         |---

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
#if defined (__GNUC__)
    {
      /* Take the faster path if the implementation-defined bits it's relying
         on are implemented the way we expect them to be.  Namely, conversion
         from unsigned to signed preserves bit pattern, and right shift of
         a signed value propagates the sign bit.
         We have to convert from signed to unsigned and back, because when left
         shifting signed values, any overflow is undefined behavior.  */
      gcc_checking_assert (prec < HOST_BITS_PER_WIDE_INT);
      int shift = HOST_BITS_PER_WIDE_INT - prec;
      return ((HOST_WIDE_INT) ((unsigned HOST_WIDE_INT) src << shift)) >>
shift;
    }
#else

so prec is zero for some reason?

Reply via email to