### Compilation failed:

error: 3: missing init declaration
void no_initializer() { int i = 0; for (     ; i < 1; i++) {} }
                                        ^^^^^
error: 4: invalid init declaration
void init_not_decl()  { int i;     for (i = 0; i < 1; i++) {} }
                                        ^^^^^
error: 5: missing loop index initializer
void index_no_init()  { for (int i; i < 1; i++) {} }
                             ^^^^^^
error: 7: invalid type for loop index
void bool_index()  { for (bool i = false; i != true; i = !i) {} }
                          ^^^^^^^^^^^^^^^
error: 8: invalid type for loop index
void vec_index()   { for (float2 i = float2(0); i.x < 1; i.x++) {} }
                          ^^^^^^^^^^^^^^^^^^^^^
error: 9: construction of array type 'int[2]' is not supported
void array_index() { for (int i[2] = int[2](0, 0); i[0] < 1; ++i[0]) {} }
                                     ^^^^^^^^^^^^
error: 9: unknown identifier 'i'
void array_index() { for (int i[2] = int[2](0, 0); i[0] < 1; ++i[0]) {} }
                                                   ^
error: 9: unknown identifier 'i'
void array_index() { for (int i[2] = int[2](0, 0); i[0] < 1; ++i[0]) {} }
                                                               ^
error: 13: loop index initializer must be a constant expression
void uniform_init()    { for (int i = u; i < 1; ++i) {} }
                              ^^^^^^^^^^
error: 14: loop index initializer must be a constant expression
void param_init(int p) { for (int i = p; i < 1; ++i) {} }
                              ^^^^^^^^^^
10 errors
