1  /* { dg-require-effective-target alloca } */
       2  int b;
       3  int foo (void)
       4  {
       5    int x[b];
       6    int bar (int t[b])
       7    {
       8      int i;
       9      for (i = 0; i < b; i++)
      10        t[i] = i + (i > 0 ? t[i-1] : 0);
      11      return t[b-1];
      12    }
      13    return bar (x);
      14  }
      15  
      16  int main ()
      17  {
      18    b = 6;
      19    if (foo () != 15)
      20      abort ();
      21    exit (0);
      22  }