1cb93a386Sopenharmony_ci/*#pragma settings RewriteSwitchStatements*/ 2cb93a386Sopenharmony_ci 3cb93a386Sopenharmony_ciuniform half4 colorGreen, colorRed; 4cb93a386Sopenharmony_ci 5cb93a386Sopenharmony_cibool switch_with_break_in_loop(int x) { 6cb93a386Sopenharmony_ci int val = 0; 7cb93a386Sopenharmony_ci switch (x) { 8cb93a386Sopenharmony_ci case 1: for (int i=0; i<10; ++i) { ++val; break; ++val; } 9cb93a386Sopenharmony_ci default: ++val; 10cb93a386Sopenharmony_ci } 11cb93a386Sopenharmony_ci return val == 2; 12cb93a386Sopenharmony_ci} 13cb93a386Sopenharmony_ci 14cb93a386Sopenharmony_cibool switch_with_continue_in_loop(int x) { 15cb93a386Sopenharmony_ci int val = 0; 16cb93a386Sopenharmony_ci switch (x) { 17cb93a386Sopenharmony_ci case 1: for (int i=0; i<10; ++i) { ++val; continue; ++val; } 18cb93a386Sopenharmony_ci default: ++val; 19cb93a386Sopenharmony_ci } 20cb93a386Sopenharmony_ci return val == 11; 21cb93a386Sopenharmony_ci} 22cb93a386Sopenharmony_ci 23cb93a386Sopenharmony_cibool loop_with_break_in_switch(int x) { 24cb93a386Sopenharmony_ci int val = 0; 25cb93a386Sopenharmony_ci for (int i=0; i<10; ++i) { 26cb93a386Sopenharmony_ci switch (x) { 27cb93a386Sopenharmony_ci case 1: ++val; break; 28cb93a386Sopenharmony_ci default: return false; 29cb93a386Sopenharmony_ci } 30cb93a386Sopenharmony_ci ++val; 31cb93a386Sopenharmony_ci } 32cb93a386Sopenharmony_ci return val == 20; 33cb93a386Sopenharmony_ci} 34cb93a386Sopenharmony_ci 35cb93a386Sopenharmony_cihalf4 main(float2 coords) { 36cb93a386Sopenharmony_ci int x = int(colorGreen.g); 37cb93a386Sopenharmony_ci return (switch_with_break_in_loop(x) && 38cb93a386Sopenharmony_ci switch_with_continue_in_loop(x) && 39cb93a386Sopenharmony_ci loop_with_break_in_switch(x)) ? colorGreen : colorRed; 40cb93a386Sopenharmony_ci} 41