summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/glslang/src/Test/array100.frag
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/glslang/src/Test/array100.frag')
-rw-r--r--chromium/third_party/glslang/src/Test/array100.frag70
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
+}