1 /* { dg-options "-std=c99 -pedantic-errors" } */
2 
foo1(int (* o)(int p[* ]))3 void foo1(int (*o)(int p[*])) { }
4 
5 void foo2(int o[*]);
6 void foo3(int o[4][*]);
7 
8 void foo4(int j, int a[j]);
9 void foo4(int, int a[*]);
10 void foo4(int, int a[]);
foo4(int j,int a[j])11 void foo4(int j, int a[j]) {
12 }
13 
14 int foo5(int a, int b[*][*], int c[static sizeof(*b)]);
foo5(int a,int b[10][10],int c[400])15 int foo5(int a, int b[10][10], int c[400]) {
16   return sizeof (c);
17 }
18 
19 int foo6(int a, int b[*][*], int c[static sizeof(*b)]);
foo6(int a,int b[a][a],int c[sizeof (* b)])20 int foo6(int a, int b[a][a], int c[sizeof(*b)]) {
21   return sizeof (c);
22 }
23 
24 void foo7(__typeof__ (int (*)(int o[*])) i);
25