100Limits.vert 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #version 100
  2. int ga, gb;
  3. float f;
  4. uniform sampler2D fsa[3];
  5. uniform float fua[10];
  6. attribute mat3 am3;
  7. attribute vec2 av2;
  8. varying vec4 va[4];
  9. const mat2 m2 = mat2(1.0);
  10. const vec3 v3 = vec3(2.0);
  11. void foo(inout float a) {}
  12. int bar()
  13. {
  14. return 1;
  15. }
  16. void main()
  17. {
  18. while (ga < gb) { }
  19. do { } while (false);
  20. for ( ; ; ); // ERROR
  21. for ( ; ga==gb; ); // ERROR
  22. for ( ; ; f++); // ERROR
  23. for ( ga = 0; ; ); // ERROR
  24. for ( bool a = false; ; ); // ERROR
  25. for (float a = 0.0; a == sin(f); ); // ERROR
  26. for ( int a = 0; a < 10; a *= 2); // ERROR
  27. for ( int a = 0; a <= 20; a++) --a; // ERROR
  28. for ( int a = 0; a <= 20; a++) { if (ga==0) a = 4; } // ERROR
  29. for (float a = 0.0; a <= 20.0; a += 2.0);
  30. for (float a = 0.0; a != 20.0; a -= 2.0) { if (ga==0) ga = 4; }
  31. for (float a = 0.0; a == 20.0; a--) for (float a = 0.0; a == 20.0; a--); // two different 'a's, everything okay
  32. for (float a = 0.0; a <= 20.0; a += 2.0);
  33. for (float a = 0.0; a <= 20.0; a += 2.0);
  34. for (float a = 0.0; a > 2.0 * 20.0; a += v3.y);
  35. for (float a = 0.0; a >= 20.0; a += 2.0) foo(a); // ERROR
  36. int ia[9];
  37. fsa[ga]; // ERROR
  38. fua[ga];
  39. am3[ga]; // ERROR
  40. av2[ga]; // ERROR
  41. va[2+ga]; // ERROR
  42. m2[ga]; // ERROR
  43. v3[ga/2]; // ERROR
  44. ia[ga]; // ERROR
  45. for (int a = 3; a >= 0; a--) {
  46. fsa[a];
  47. fua[a+2];
  48. am3[3*a];
  49. av2[3*a];
  50. va[a-1];
  51. m2[a/2];
  52. v3[a];
  53. ia[a];
  54. ia[bar()]; // ERROR
  55. }
  56. fsa[2];
  57. fua[3];
  58. am3[2];
  59. av2[1];
  60. va[1];
  61. m2[1];
  62. v3[1];
  63. ia[3];
  64. }