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