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