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