yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
b4cb70fc
main
1#version 130 2 3float gu []; 4float g4 [4 ]; 5float g5 [5 ]; 6 7uniform int a ; 8 9float [ 4 ] foo( float a[ 5 ]) 10{ 11return float[](a[ 0 ], a[ 1 ], a[ 2 ], a[ 3 ]); 12} 13 14void bar( float [ 5 ]) {} 15 16void main() 17{ 18{ 19float gu[ 2 ]; // okay, new scope 20 21gu[ 2 ] = 4.0 ; // ERROR, overflow 22} 23 24gu[ 2 ] = 4.0 ; // okay 25 26gu[ 3 ] = 3.0 ; 27gu[a] = 5.0 ; // ERROR 28 29g4 = foo(g5); 30g5 = g4; // ERROR 31gu = g4; // ERROR 32 33foo(gu); // ERROR 34bar(g5); 35 36if (float[ 4 ]( 1.0 , 2.0 , 3.0 , 4.0 ) == g4) 37gu[ 0 ] = 2.0 ; 38 39float u[]; 40u[ 2 ] = 3.0 ; // okay 41float u[ 5 ]; 42u[ 5 ] = 5.0 ; // ERROR 43foo(u); // okay 44 45gl_FragData[ 1000 ] = vec4( 1.0 ); // ERROR 46gl_FragData[ -1 ] = vec4( 1.0 ); // ERROR 47gl_FragData[ 3 ] = vec4( 1.0 ); 48 49const int ca[] = int[]( 3 , 2 ); 50int sum = ca[ 0 ]; 51sum += ca[ 1 ]; 52sum += ca[ 2 ]; // ERROR 53 54const int ca3[ 3 ] = int[]( 3 , 2 ); // ERROR 55int ica[] = int[]( 3 , 2 ); 56int ica3[ 3 ] = int[]( 3 , 2 ); // ERROR 57ica[ 3.1 ] = 3 ; // ERROR 58ica[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{ 70int uns[]; 71uns[ 3 ] = 40 ; 72uns[ 1 ] = 30 ; 73guns[ 2 ] = vec3( 2.4 ); 74 75float unsf[]; 76bar(unsf); // ERROR 77} 78 79float [] foo2() // ERROR 80{ 81float f[]; 82return f; 83float g[ 9 ]; 84return g; // ERROR 85} 86 87float gUnusedUnsized[]; 88 89void foo3() 90{ 91float resize1[]; 92resize1[ 2 ] = 4.0 ; 93resize1. length (); // ERROR 94float resize1[ 3 ]; 95resize1. length (); 96 97float resize2[]; 98resize2[ 5 ] = 4.0 ; 99float resize2[ 5 ]; // should be ERROR, but is not 100resize2. length (); 101resize2[ 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{ 111s2d[a]; // ERROR, can't variably index unsized array 112float local[] = gUnusedUnsized; // ERROR, can initialize with runtime-sized array 113}