1cb93a386Sopenharmony_ciuniform half4 colorGreen, colorRed; 2cb93a386Sopenharmony_ci 3cb93a386Sopenharmony_cibool switch_fallthrough(int value) { 4cb93a386Sopenharmony_ci bool ok = false; 5cb93a386Sopenharmony_ci switch (value) { 6cb93a386Sopenharmony_ci case 2: break; 7cb93a386Sopenharmony_ci case 1: 8cb93a386Sopenharmony_ci case 0: ok = true; break; 9cb93a386Sopenharmony_ci default: break; 10cb93a386Sopenharmony_ci } 11cb93a386Sopenharmony_ci return ok; 12cb93a386Sopenharmony_ci} 13cb93a386Sopenharmony_ci 14cb93a386Sopenharmony_cibool switch_fallthrough_twice(int value) { 15cb93a386Sopenharmony_ci bool ok = false; 16cb93a386Sopenharmony_ci switch (value) { 17cb93a386Sopenharmony_ci case 0: break; 18cb93a386Sopenharmony_ci case 1: 19cb93a386Sopenharmony_ci case 2: 20cb93a386Sopenharmony_ci case 3: ok = true; break; 21cb93a386Sopenharmony_ci default: break; 22cb93a386Sopenharmony_ci } 23cb93a386Sopenharmony_ci return ok; 24cb93a386Sopenharmony_ci} 25cb93a386Sopenharmony_ci 26cb93a386Sopenharmony_cihalf4 main(float2 coords) { 27cb93a386Sopenharmony_ci int x = int(colorGreen.g); 28cb93a386Sopenharmony_ci return (switch_fallthrough(x) && switch_fallthrough_twice(x)) ? colorGreen : colorRed; 29cb93a386Sopenharmony_ci} 30