1617a3babSopenharmony_ci#version 100
2617a3babSopenharmony_ci
3617a3babSopenharmony_cifloat gu[];              // ERROR
4617a3babSopenharmony_cifloat g4[4];
5617a3babSopenharmony_cifloat g5[5];
6617a3babSopenharmony_ci
7617a3babSopenharmony_ciuniform int a;
8617a3babSopenharmony_ci
9617a3babSopenharmony_cifloat[4] foo(float[5] a)  // ERROR  // ERROR
10617a3babSopenharmony_ci{
11617a3babSopenharmony_ci    return float[](a[0], a[1], a[2], a[3]);  // ERROR
12617a3babSopenharmony_ci}
13617a3babSopenharmony_ci
14617a3babSopenharmony_civoid bar(float[5]) {}
15617a3babSopenharmony_ci
16617a3babSopenharmony_civoid main()
17617a3babSopenharmony_ci{
18617a3babSopenharmony_ci    {
19617a3babSopenharmony_ci        float gu[2];  // okay, new scope
20617a3babSopenharmony_ci
21617a3babSopenharmony_ci        gu[2] = 4.0;  // ERROR, overflow
22617a3babSopenharmony_ci    }
23617a3babSopenharmony_ci
24617a3babSopenharmony_ci    g4 = foo(g5);  // ERROR
25617a3babSopenharmony_ci    g5 = g4;  // ERROR
26617a3babSopenharmony_ci    gu = g4;  // ERROR
27617a3babSopenharmony_ci
28617a3babSopenharmony_ci    foo(gu);  // ERROR
29617a3babSopenharmony_ci    bar(g5);
30617a3babSopenharmony_ci
31617a3babSopenharmony_ci    if (float[4](1.0, 2.0, 3.0, 4.0) == g4)  // ERROR
32617a3babSopenharmony_ci        gu[0] = 2.0;
33617a3babSopenharmony_ci
34617a3babSopenharmony_ci    float u[5];
35617a3babSopenharmony_ci    u[5] = 5.0; // ERROR
36617a3babSopenharmony_ci    foo(u);     // okay
37617a3babSopenharmony_ci
38617a3babSopenharmony_ci    gl_FragData[1000] = vec4(1.0); // ERROR
39617a3babSopenharmony_ci    gl_FragData[-1] = vec4(1.0);   // ERROR
40617a3babSopenharmony_ci    gl_FragData[3] = vec4(1.0);
41617a3babSopenharmony_ci}
42617a3babSopenharmony_ci
43617a3babSopenharmony_cistruct SA {
44617a3babSopenharmony_ci    vec3 v3;
45617a3babSopenharmony_ci    vec2 v2[4];
46617a3babSopenharmony_ci};
47617a3babSopenharmony_ci
48617a3babSopenharmony_cistruct SB {
49617a3babSopenharmony_ci    vec4 v4;
50617a3babSopenharmony_ci    SA sa;
51617a3babSopenharmony_ci};
52617a3babSopenharmony_ci
53617a3babSopenharmony_ciSB bar9()
54617a3babSopenharmony_ci{
55617a3babSopenharmony_ci    SB s;
56617a3babSopenharmony_ci    return s;  // ERROR
57617a3babSopenharmony_ci}
58617a3babSopenharmony_ci
59617a3babSopenharmony_civoid bar10(SB s)  // okay
60617a3babSopenharmony_ci{
61617a3babSopenharmony_ci}
62617a3babSopenharmony_ci
63617a3babSopenharmony_civoid bar11()
64617a3babSopenharmony_ci{
65617a3babSopenharmony_ci    SB s1, s2;
66617a3babSopenharmony_ci    s1 = s2;   // ERROR
67617a3babSopenharmony_ci    bar10(s1);
68617a3babSopenharmony_ci    s2 = bar9(); // ERROR
69617a3babSopenharmony_ci    SB initSb = s1;  // ERROR
70617a3babSopenharmony_ci}
71