/*#pragma settings RewriteSwitchStatements*/ uniform half4 colorGreen, colorRed; bool switch_with_break_in_while_loop(int x) { int val = 0; int i = 0; switch (x) { case 1: while (i < 10) { ++i; ++val; break; ++val; } default: ++val; } return val == 2; } bool switch_with_continue_in_while_loop(int x) { int val = 0; int i = 0; switch (x) { case 1: while (i < 10) { ++i; ++val; continue; ++val; } default: ++val; } return val == 11; } bool while_loop_with_break_in_switch(int x) { int val = 0; int i = 0; while (i < 10) { ++i; switch (x) { case 1: ++val; break; default: return false; } ++val; } return val == 20; } bool switch_with_break_in_do_while_loop(int x) { int val = 0; int i = 0; switch (x) { case 1: do { ++i; ++val; break; ++val; } while (i < 10); default: ++val; } return val == 2; } bool switch_with_continue_in_do_while_loop(int x) { int val = 0; int i = 0; switch (x) { case 1: do { ++i; ++val; continue; ++val; } while (i < 10); default: ++val; } return val == 11; } bool do_while_loop_with_break_in_switch(int x) { int val = 0; int i = 0; do { ++i; switch (x) { case 1: ++val; break; default: return false; } ++val; } while (i < 10); return val == 20; } half4 main(float2 coords) { int x = int(colorGreen.g); return (switch_with_break_in_while_loop(x) && switch_with_continue_in_while_loop(x) && while_loop_with_break_in_switch(x) && switch_with_break_in_do_while_loop(x) && switch_with_continue_in_do_while_loop(x) && do_while_loop_with_break_in_switch(x)) ? colorGreen : colorRed; }