// Expect 5 errors

void loop_length_ok() { for (int i = 0; i < 128; i++) {} }  // LEGAL: See kMaxUnrollableLoopLength
void loop_too_long()  { for (int i = 0; i < 129; i++) {} }
void infinite_loop()  { for (int i = 0; i < 1; i += 0) {} }

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); } }
