• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#version 100
2
3float gu[];              // ERROR
4float g4[4];
5float g5[5];
6
7uniform int a;
8
9float[4] foo(float[5] a)  // ERROR  // ERROR
10{
11    return float[](a[0], a[1], a[2], a[3]);  // ERROR
12}
13
14void bar(float[5]) {}
15
16void main()
17{
18    {
19        float gu[2];  // okay, new scope
20
21        gu[2] = 4.0;  // ERROR, overflow
22    }
23
24    g4 = foo(g5);  // ERROR
25    g5 = g4;  // ERROR
26    gu = g4;  // ERROR
27
28    foo(gu);  // ERROR
29    bar(g5);
30
31    if (float[4](1.0, 2.0, 3.0, 4.0) == g4)  // ERROR
32        gu[0] = 2.0;
33
34    float u[5];
35    u[5] = 5.0; // ERROR
36    foo(u);     // okay
37
38    gl_FragData[1000] = vec4(1.0); // ERROR
39    gl_FragData[-1] = vec4(1.0);   // ERROR
40    gl_FragData[3] = vec4(1.0);
41}
42
43struct SA {
44    vec3 v3;
45    vec2 v2[4];
46};
47
48struct SB {
49    vec4 v4;
50    SA sa;
51};
52
53SB bar9()
54{
55    SB s;
56    return s;  // ERROR
57}
58
59void bar10(SB s)  // okay
60{
61}
62
63void bar11()
64{
65    SB s1, s2;
66    s1 = s2;   // ERROR
67    bar10(s1);
68    s2 = bar9(); // ERROR
69    SB initSb = s1;  // ERROR
70}
71