/* { dg-do run } */

typedef unsigned short u16;

static u16 a;

u16 __attribute__ ((noinline, noclone))
foo (int p1)
{
  a = -(p1 > 0);
  a *= 0 != a;
  a *= (unsigned)a;
  return a;
}

int
main ()
{
  u16 x = foo (1);
  if (x != 1)
    __builtin_abort();
  return 0;
}