#version 450

struct S {
    int[3] a[2], b[5];
};

S s;

int[5] c[4], d[8];
int[9] e[], f[];
int e[11][9];
int f[13][9];

int[14] g[], h[];

int [14][15][6] foo(int[6] p[14][15]) { return p; }

void main()
{
    g[3];
    h[2];
}

float[4][3][2] bar() { float[3][2] a[4]; return a; }

in inbname {
    float[7] f[8][9];
} inbinst[4][5][6];

float[3][2] barm[4]() { float[3][2] a[4]; return a; }  // ERROR