Simultaneously fix only known memory leak and take the next step in supporting arrays of arrays. Improved several minor things along the way.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@20514 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
57
Test/array.frag
Normal file
57
Test/array.frag
Normal file
@@ -0,0 +1,57 @@
|
||||
#version 130
|
||||
|
||||
float gu[];
|
||||
float g4[4];
|
||||
float g5[5];
|
||||
|
||||
uniform int a;
|
||||
|
||||
float[4] foo(float a[5])
|
||||
{
|
||||
return float[](a[0], a[1], a[2], a[3]);
|
||||
}
|
||||
|
||||
void bar(float[5]) {}
|
||||
|
||||
void main()
|
||||
{
|
||||
{
|
||||
float gu[2]; // okay, new scope
|
||||
|
||||
gu[2] = 4.0; // ERROR, overflow
|
||||
}
|
||||
|
||||
gu[2] = 4.0; // okay
|
||||
|
||||
gu[3] = 3.0;
|
||||
gu[a] = 5.0; // ERROR
|
||||
|
||||
g4 = foo(g5);
|
||||
g5 = g4; // ERROR
|
||||
gu = g4; // ERROR
|
||||
|
||||
foo(gu); // ERROR
|
||||
bar(g5);
|
||||
|
||||
if (float[4](1.0, 2.0, 3.0, 4.0) == g4)
|
||||
gu[0] = 2.0;
|
||||
|
||||
float u[];
|
||||
u[2] = 3.0; // okay
|
||||
float u[5];
|
||||
u[5] = 5.0; // ERROR
|
||||
foo(u); // okay
|
||||
|
||||
gl_FragData[1000] = vec4(1.0); // ERROR
|
||||
gl_FragData[-1] = vec4(1.0); // ERROR
|
||||
gl_FragData[3] = vec4(1.0);
|
||||
|
||||
const int ca[] = int[](3, 2);
|
||||
int sum = ca[0];
|
||||
sum += ca[1];
|
||||
sum += ca[2]; // ERROR
|
||||
|
||||
const int ca3[3] = int[](3, 2); // ERROR
|
||||
int ica[] = int[](3, 2);
|
||||
int ica3[3] = int[](3, 2); // ERROR
|
||||
}
|
||||
Reference in New Issue
Block a user