summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/glslang/src/Test/100Limits.vert
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/glslang/src/Test/100Limits.vert')
-rw-r--r--chromium/third_party/glslang/src/Test/100Limits.vert76
1 files changed, 76 insertions, 0 deletions
diff --git a/chromium/third_party/glslang/src/Test/100Limits.vert b/chromium/third_party/glslang/src/Test/100Limits.vert
new file mode 100644
index 00000000000..e42f7684507
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/100Limits.vert
@@ -0,0 +1,76 @@
+#version 100
+
+int ga, gb;
+float f;
+
+uniform sampler2D fsa[3];
+uniform float fua[10];
+attribute mat3 am3;
+attribute vec2 av2;
+varying vec4 va[4];
+
+const mat2 m2 = mat2(1.0);
+const vec3 v3 = vec3(2.0);
+
+void foo(inout float a) {}
+
+int bar()
+{
+ return 1;
+}
+
+void main()
+{
+ while (ga < gb) { }
+
+ do { } while (false);
+
+ for ( ; ; ); // ERROR
+ for ( ; ga==gb; ); // ERROR
+ for ( ; ; f++); // ERROR
+ for ( ga = 0; ; ); // ERROR
+ for ( bool a = false; ; ); // ERROR
+ for (float a = 0.0; a == sin(f); ); // ERROR
+ for ( int a = 0; a < 10; a *= 2); // ERROR
+ for ( int a = 0; a <= 20; a++) --a; // ERROR
+ for ( int a = 0; a <= 20; a++) { if (ga==0) a = 4; } // ERROR
+ for (float a = 0.0; a <= 20.0; a += 2.0);
+ for (float a = 0.0; a != 20.0; a -= 2.0) { if (ga==0) ga = 4; }
+ for (float a = 0.0; a == 20.0; a--) for (float a = 0.0; a == 20.0; a--); // two different 'a's, everything okay
+ for (float a = 0.0; a <= 20.0; a += 2.0);
+ for (float a = 0.0; a <= 20.0; a += 2.0);
+ for (float a = 0.0; a > 2.0 * 20.0; a += v3.y);
+ for (float a = 0.0; a >= 20.0; a += 2.0) foo(a); // ERROR
+
+ int ia[9];
+
+ fsa[ga]; // ERROR
+ fua[ga];
+ am3[ga]; // ERROR
+ av2[ga]; // ERROR
+ va[2+ga]; // ERROR
+ m2[ga]; // ERROR
+ v3[ga/2]; // ERROR
+ ia[ga]; // ERROR
+
+ for (int a = 3; a >= 0; a--) {
+ fsa[a];
+ fua[a+2];
+ am3[3*a];
+ av2[3*a];
+ va[a-1];
+ m2[a/2];
+ v3[a];
+ ia[a];
+ ia[bar()]; // ERROR
+ }
+
+ fsa[2];
+ fua[3];
+ am3[2];
+ av2[1];
+ va[1];
+ m2[1];
+ v3[1];
+ ia[3];
+}