diff options
Diffstat (limited to 'chromium/third_party/glslang/src/Test/array100.frag')
-rw-r--r-- | chromium/third_party/glslang/src/Test/array100.frag | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/chromium/third_party/glslang/src/Test/array100.frag b/chromium/third_party/glslang/src/Test/array100.frag new file mode 100644 index 00000000000..b77aedf6e54 --- /dev/null +++ b/chromium/third_party/glslang/src/Test/array100.frag @@ -0,0 +1,70 @@ +#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 +} |