1 #version 130 2 3 float gu[]; 4 float g4[4]; 5 float g5[5]; 6 7 uniform int a; 8 9 float[4] foo(float a[5]) 10 { 11 return float[](a[0], a[1], a[2], a[3]); 12 } 13 14 void bar(float[5]) {} 15 16 void main() 17 { 18 { 19 float gu[2]; // okay, new scope 20 21 gu[2] = 4.0; // ERROR, overflow 22 } 23 24 gu[2] = 4.0; // okay 25 26 gu[3] = 3.0; 27 gu[a] = 5.0; // ERROR 28 29 g4 = foo(g5); 30 g5 = g4; // ERROR 31 gu = g4; // ERROR 32 33 foo(gu); // ERROR 34 bar(g5); 35 36 if (float[4](1.0, 2.0, 3.0, 4.0) == g4) 37 gu[0] = 2.0; 38 39 float u[]; 40 u[2] = 3.0; // okay 41 float u[5]; 42 u[5] = 5.0; // ERROR 43 foo(u); // okay 44 45 gl_FragData[1000] = vec4(1.0); // ERROR 46 gl_FragData[-1] = vec4(1.0); // ERROR 47 gl_FragData[3] = vec4(1.0); 48 49 const int ca[] = int[](3, 2); 50 int sum = ca[0]; 51 sum += ca[1]; 52 sum += ca[2]; // ERROR 53 54 const int ca3[3] = int[](3, 2); // ERROR 55 int ica[] = int[](3, 2); 56 int ica3[3] = int[](3, 2); // ERROR 57 ica[3.1] = 3; // ERROR 58 ica[u[1]] = 4; // ERROR 59 } 60 61 int[] foo213234(); // ERROR 62 int foo234234(float[]); // ERROR 63 int foo234235(vec2[] v); // ERROR 64 65 vec3 guns[]; 66 float f = guns[7]; 67 68 void foo() 69 { 70 int uns[]; 71 uns[3] = 40; 72 uns[1] = 30; 73 guns[2] = vec3(2.4); 74 75 float unsf[]; 76 bar(unsf); // ERROR 77 } 78 79 float[] foo2() // ERROR 80 { 81 float f[]; 82 return f; 83 float g[9]; 84 return g; // ERROR 85 } 86 87 float gUnusedUnsized[]; 88 89 void foo3() 90 { 91 float resize1[]; 92 resize1[2] = 4.0; 93 resize1.length(); // ERROR 94 float resize1[3]; 95 resize1.length(); 96 97 float resize2[]; 98 resize2[5] = 4.0; 99 float resize2[5]; // should be ERROR, but is not 100 resize2.length(); 101 resize2[5] = 4.0; // ERROR 102 } 103 104 int[] i = int[](); // ERROR, need constructor arguments 105 float emptyA[]; 106 float b = vec4(emptyA); // ERROR, array can't be a constructor argument 107 uniform sampler2D s2d[]; 108 109 void foo4() 110 { 111 s2d[a]; // ERROR, can't variably index unsized array 112 float local[] = gUnusedUnsized; // ERROR, can initialize with runtime-sized array 113 } 114