1// Expect 15 errors
2
3void loop_length_128()    { for (int i = 0; i < 128; i++) {} }   // OK, under kLoopTerminationLimit
4void loop_length_129()    { for (int i = 0; i < 129; i++) {} }   // OK, under kLoopTerminationLimit
5void loop_length_99999()  { for (int i = 0; i < 99999; i++) {} } // OK, under kLoopTerminationLimit
6void loop_length_100000() { for (int i = 0; i < 100000; i++) {} }
7void infinite_loop1()     { for (int i = 0; i < 1;  i += 0) {} }
8void infinite_loop2()     { for (int i = 3; i >= 3; i += 0) {} }
9void infinite_loop3()     { for (float i = 3; i >= 3; i += 1e-20) {} }
10
11void set(out int x)   { x = 1; }
12void inc(inout int x) { x++; }
13
14void index_modified()    { for (int i = 0; i < 2; i++) { i++; } }
15void index_out_param()   { for (int i = 0; i < 1; i++) { set(i); } }
16void index_inout_param() { for (int i = 0; i < 1; i++) { inc(i); } }
17
18void infinite_loop_le()   { for (int i = 0; i <= 3; --i)  {} }
19void infinite_loop_lt()   { for (int i = 0; i <  4; --i)  {} }
20void infinite_loop_ge()   { for (int i = 3; i >= 0; ++i)  {} }
21void infinite_loop_gt()   { for (int i = 3; i > -1; ++i)  {} }
22void infinite_loop_eq1()  { for (int i = 0; i == 0; i-=0) {} }
23void infinite_loop_eq2()  { for (int i = 1; i == 1; i+=0) {} }
24void infinite_loop_ne1()  { for (int i = 0; i != 4; i--)  {} }
25void infinite_loop_ne2()  { for (int i = 0; i != 4; i+=3) {} }
26