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