1 /* { dg-require-effective-target alloca } */
2 int N = 1;
foo()3 void foo() {} /* Necessary to trigger the original ICE.  */
bar(char a[2][N])4 void bar (char a[2][N]) { a[1][0] = N; }
5 int
main(void)6 main (void)
7 {
8   void *x;
9 
10   N = 4;
11   x = alloca (2 * N);
12   memset (x, 0, 2 * N);
13   bar (x);
14   if (N[(char *) x] != N)
15     abort ();
16   exit (0);
17 }
18