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

--- Comment #8 from Oleg Endo <olegendo at gcc dot gnu.org> ---
(In reply to Oleg Endo from comment #1)
> 
> void test2_2 (unsigned int x, unsigned int* y)
> {
>   unsigned int xx = x >> 1;
>   unsigned int p = x & 1;
>   if (p != 0)
>     foo (xx);
> }
> 

And of course also in the opposite direction:

void test4_2 (unsigned int x)
{
  if (x & (1 << 31))
    ((void(*)(void))(x << 1)) ();
}

Reply via email to