https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122540
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
```
inline HOST_WIDE_INT
sext_hwi (HOST_WIDE_INT src, unsigned int prec)
{
if (prec == HOST_BITS_PER_WIDE_INT)
return src;
else
#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;
}
```
Oh prec is 0 here :)