blob: 6ac20cab2e6db2be0ff9a2c19a4a19051f302b05 [file] [log] [blame]
// Expect 15 errors
void loop_length_128() { for (int i = 0; i < 128; i++) {} } // OK, under kLoopTerminationLimit
void loop_length_129() { for (int i = 0; i < 129; i++) {} } // OK, under kLoopTerminationLimit
void loop_length_99999() { for (int i = 0; i < 99999; i++) {} } // OK, under kLoopTerminationLimit
void loop_length_100000() { for (int i = 0; i < 100000; i++) {} }
void infinite_loop1() { for (int i = 0; i < 1; i += 0) {} }
void infinite_loop2() { for (int i = 3; i >= 3; i += 0) {} }
void infinite_loop3() { for (float i = 3; i >= 3; i += 1e-20) {} }
void set(out int x) { x = 1; }
void inc(inout int x) { x++; }
void index_modified() { for (int i = 0; i < 2; i++) { i++; } }
void index_out_param() { for (int i = 0; i < 1; i++) { set(i); } }
void index_inout_param() { for (int i = 0; i < 1; i++) { inc(i); } }
void infinite_loop_le() { for (int i = 0; i <= 3; --i) {} }
void infinite_loop_lt() { for (int i = 0; i < 4; --i) {} }
void infinite_loop_ge() { for (int i = 3; i >= 0; ++i) {} }
void infinite_loop_gt() { for (int i = 3; i > -1; ++i) {} }
void infinite_loop_eq1() { for (int i = 0; i == 0; i-=0) {} }
void infinite_loop_eq2() { for (int i = 1; i == 1; i+=0) {} }
void infinite_loop_ne1() { for (int i = 0; i != 4; i--) {} }
void infinite_loop_ne2() { for (int i = 0; i != 4; i+=3) {} }
/*%%*
loop must guarantee termination in fewer iterations
invalid loop expression
invalid loop expression
loop must guarantee termination in fewer iterations
loop index must not be modified within body of the loop
loop index must not be modified within body of the loop
loop index must not be modified within body of the loop
loop must guarantee termination in fewer iterations
loop must guarantee termination in fewer iterations
loop must guarantee termination in fewer iterations
loop must guarantee termination in fewer iterations
invalid loop expression
invalid loop expression
loop must guarantee termination in fewer iterations
loop must guarantee termination in fewer iterations
*%%*/