1 /* { dg-require-effective-target alloca } */
2 int b;
foo(void)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 
main()16 int main ()
17 {
18   b = 6;
19   if (foo () != 15)
20     abort ();
21   exit (0);
22 }
23