On Tue, 22 May 2018, Richard Biener wrote: > + if (*sptr & (1 << (CHAR_BIT * sizeof (T) - 1))) > + gcc_unreachable (); > + m_flag = 1 << ((CHAR_BIT * sizeof (T)) - clz_hwi (*sptr));
I don't see how the use of clz_hwi works with a type T that may be narrower than HOST_WIDE_INT. Surely this logic requires a count of leading zeros in something of type T, not a possibly larger number of leading zeros after conversion to HOST_WIDE_INT? Also, if T is wider than int, shifting plain 1 won't work here. -- Joseph S. Myers jos...@codesourcery.com