4430041.c   [plain text]


/* { dg-do compile } */
/* { dg-options "-O3 -gdwarf-2 -fno-common" } */
union {
  int i;
}     a1[10];
int v1;
int v2;
int *p1;

int f1(void);
void f2(void);
static int
f3(int arg1, int arg2, int arg3)
{
  int retval = v2;
  a1[v2++].i = 2;
  a1[v2++].i = arg1;
  a1[v2++].i = arg2;
  a1[v2++].i = arg3;
  if (v2 >= 50000)
    f2();
  return retval;
}

void
f4()
{
  do {
    v1 = f3(v1, p1[1], p1[0]);
    p1 += 2;
  } while (f1());
}