// Expect 9 errors

void no_condition() { for (int i = 0;;i++) {} }

void unary_cond_op()   { for (int i = 0; !(i > 1); ++i) {} }
void implict_cond_op() { for (int i = 1; bool(i); --i) {} }
void complex_cond_op() { for (int i = 0; i < 1 && i < 2; ++i) {} }

void cond_wrong_var()  { int j = 0; for (int i = 0; j < 1; ++i) {} }
void cond_wrong_side() { for (int i = 0; 1 > i; ++i) {} }
void cond_index_cast() { for (int i = 0; float(i) < 1.5; ++i) {} }

uniform int u;

void cond_uniform_val()    { for (int i = 0; i < u; ++i) {} }
void cond_param_val(int p) { for (int i = 0; i < p; ++i) {} }

/*%%*
missing condition
invalid condition
invalid condition
expected loop index on left hand side of condition
expected loop index on left hand side of condition
expected loop index on left hand side of condition
expected loop index on left hand side of condition
loop index must be compared with a constant expression
loop index must be compared with a constant expression
*%%*/
