int rglobal = 0;

volatile int g;
volatile int c;
volatile double *array;

/* unused parameter */
static void
bar(int *p)
{
  int i;
  for (i = 0; i < c; i++)
    {
      /* something big so that it is inlined second. */
      array[i] = (array[i+1]+array[i]+1)*2;
    }
}

void foo(int *p) {
  g = *p;
  bar(p);
}

void __attribute__((noinline))
entry(void)
{
  foo(&rglobal);
}

void __attribute__((used))
blah(int *p)
{
  bar(p);
}