| uniform half4 colorGreen, colorRed; |
| |
| bool test_return() { |
| do { |
| return true; |
| continue; // should be eliminated |
| break; // should be eliminated |
| } while (false); |
| |
| return false; // should be eliminated |
| } |
| |
| bool test_break() { |
| do { |
| break; |
| continue; // should be eliminated |
| return false; // should be eliminated |
| } while (false); |
| |
| return true; |
| } |
| |
| bool test_continue() { |
| do { |
| continue; |
| break; // should be eliminated |
| return false; // should be eliminated |
| } while (false); |
| |
| return true; |
| } |
| |
| bool test_if_return() { |
| do { |
| if (colorGreen.g > 0) { |
| return true; |
| } else { |
| break; |
| } |
| continue; |
| } while (false); |
| |
| return false; |
| } |
| |
| bool test_if_break() { |
| do { |
| if (colorGreen.g > 0) { |
| break; |
| } else { |
| continue; |
| } |
| return false; // should be eliminated |
| } while (false); |
| |
| return true; |
| } |
| |
| bool test_else() { |
| do { |
| if (colorGreen.g == 0) { |
| return false; |
| } else { |
| return true; |
| } |
| break; // should be eliminated |
| continue; // should be eliminated |
| return false; // should be eliminated |
| } while (false); |
| |
| return false; // should be eliminated |
| } |
| |
| half4 main(float2 xy) { |
| return (test_return() && test_break() && test_continue() && |
| test_if_return() && test_if_break() && test_else()) ? colorGreen |
| : colorRed; |
| } |