1#version 130 2 3float gu[]; 4float g4[4]; 5float g5[5]; 6 7uniform int a; 8 9float[4] foo(float a[5]) 10{ 11 return float[](a[0], a[1], a[2], a[3]); 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 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 61int[] foo213234(); // ERROR 62int foo234234(float[]); // ERROR 63int foo234235(vec2[] v); // ERROR 64 65vec3 guns[]; 66float f = guns[7]; 67 68void 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 79float[] foo2() // ERROR 80{ 81 float f[]; 82 return f; 83 float g[9]; 84 return g; // ERROR 85} 86 87float gUnusedUnsized[]; 88 89void 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 104int[] i = int[](); // ERROR, need constructor arguments 105float emptyA[]; 106float b = vec4(emptyA); // ERROR, array can't be a constructor argument 107uniform sampler2D s2d[]; 108 109void 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