1cb93a386Sopenharmony_cihalf4 main(float2 coords) { 2cb93a386Sopenharmony_ci half4 result = half4(0); 3cb93a386Sopenharmony_ci 4cb93a386Sopenharmony_ci // Two variables, both used 5cb93a386Sopenharmony_ci for (half a = 0, b = 0; a < 10 && b < 10; ++a, ++b) { 6cb93a386Sopenharmony_ci result.r += a; 7cb93a386Sopenharmony_ci result.g += b; 8cb93a386Sopenharmony_ci } 9cb93a386Sopenharmony_ci 10cb93a386Sopenharmony_ci // Two variables, one dead 11cb93a386Sopenharmony_ci for (int c = 0, d = 0; c < 10; ++c) { 12cb93a386Sopenharmony_ci result.b += 1; 13cb93a386Sopenharmony_ci } 14cb93a386Sopenharmony_ci 15cb93a386Sopenharmony_ci // Three variables, all used, some array-typed 16cb93a386Sopenharmony_ci for (float d[2] = float[2](0, 10), e[4] = float[4](1,2,3,4), f = 9; d[0] < d[1]; ++d[0]) { 17cb93a386Sopenharmony_ci result.a = half(e[0] * f); 18cb93a386Sopenharmony_ci } 19cb93a386Sopenharmony_ci 20cb93a386Sopenharmony_ci // Four variables, all dead 21cb93a386Sopenharmony_ci for (half4 x, y, z, w;; ) break; 22cb93a386Sopenharmony_ci 23cb93a386Sopenharmony_ci // Just referencing a variable instead of declaring it--legal, if not meaningful. 24cb93a386Sopenharmony_ci for (result;; ) break; 25cb93a386Sopenharmony_ci 26cb93a386Sopenharmony_ci return result; 27cb93a386Sopenharmony_ci} 28