glslang/Test/array100.frag

71 lines
997 B
GLSL

#version 100
float gu[]; // ERROR
float g4[4];
float g5[5];
uniform int a;
float[4] foo(float[5] a) // ERROR // ERROR
{
return float[](a[0], a[1], a[2], a[3]); // ERROR
}
void bar(float[5]) {}
void main()
{
{
float gu[2]; // okay, new scope
gu[2] = 4.0; // ERROR, overflow
}
g4 = foo(g5); // ERROR
g5 = g4; // ERROR
gu = g4; // ERROR
foo(gu); // ERROR
bar(g5);
if (float[4](1.0, 2.0, 3.0, 4.0) == g4) // ERROR
gu[0] = 2.0;
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);
}
struct SA {
vec3 v3;
vec2 v2[4];
};
struct SB {
vec4 v4;
SA sa;
};
SB bar9()
{
SB s;
return s; // ERROR
}
void bar10(SB s) // okay
{
}
void bar11()
{
SB s1, s2;
s1 = s2; // ERROR
bar10(s1);
s2 = bar9(); // ERROR
SB initSb = s1; // ERROR
}