int a1[];
int a2[*];
int a4[3];

int m1[][3];
int m2[*][*];
int m4[3][3];

typedef int T;

int fred() {
    int a1[];
    int a2[*];
    int a4[3];
    int T[3];
}

int mary( int T[3],
	  int p1[const 3],
	  int p2[static 3],
	  int p3[static const 3]
    ) {
}

int (*tom())[3] {
}

int (*(jane)())( int T[3],
		 int p1[const 3],
		 int p2[static 3],
		 int p3[static const 3]
    ) {
}
