/* { dg-do compile } */

int a, b;
long c;
void foo(int);

void f2(void)
{
  unsigned long k = 1;

  foo(b ? k = 0 : 0);

  b = ((c = b) ? (k ? : (c = 0)) : a) * c;
}

void f1(void)
{
  f2();

  a = b | c;
}
