1*c8dee2aaSAndroid Build Coastguard Workeruniform half4 colorRed, colorGreen; 2*c8dee2aaSAndroid Build Coastguard Worker 3*c8dee2aaSAndroid Build Coastguard Workerbool do_side_effect(out bool x) { 4*c8dee2aaSAndroid Build Coastguard Worker x = true; 5*c8dee2aaSAndroid Build Coastguard Worker return false; 6*c8dee2aaSAndroid Build Coastguard Worker} 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Workerconst bool TRUE = true; 9*c8dee2aaSAndroid Build Coastguard Workerconst bool FALSE = false; 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Workerhalf4 main(float2 coords) { 12*c8dee2aaSAndroid Build Coastguard Worker bool ok; 13*c8dee2aaSAndroid Build Coastguard Worker 14*c8dee2aaSAndroid Build Coastguard Worker ok = (colorRed == colorGreen) ? true : true; 15*c8dee2aaSAndroid Build Coastguard Worker 16*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (colorGreen.g == 1 ? true : true); 17*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (colorGreen.g == 0 ? TRUE : true); 18*c8dee2aaSAndroid Build Coastguard Worker ok = ok || (colorGreen.g == 1 ? false : false); 19*c8dee2aaSAndroid Build Coastguard Worker ok = ok || (colorGreen.g == 0 ? false : FALSE); 20*c8dee2aaSAndroid Build Coastguard Worker 21*c8dee2aaSAndroid Build Coastguard Worker half4 green = coords.x == coords.y ? colorGreen : colorGreen; 22*c8dee2aaSAndroid Build Coastguard Worker half4 red = coords.x != coords.y ? colorRed : colorRed; 23*c8dee2aaSAndroid Build Coastguard Worker 24*c8dee2aaSAndroid Build Coastguard Worker // Make sure side effects are honored. 25*c8dee2aaSAndroid Build Coastguard Worker bool param = false; 26*c8dee2aaSAndroid Build Coastguard Worker bool call = do_side_effect(param) ? true : true; 27*c8dee2aaSAndroid Build Coastguard Worker 28*c8dee2aaSAndroid Build Coastguard Worker return (ok && param && call) ? green : red; 29*c8dee2aaSAndroid Build Coastguard Worker} 30