1 2out vec4 sk_FragColor; 3uniform vec4 colorGreen; 4uniform vec4 colorRed; 5bool return_in_one_case_bi(int x) { 6 int val = 0; 7 switch (x) { 8 case 1: 9 ++val; 10 return false; 11 default: 12 ++val; 13 } 14 return val == 1; 15} 16bool return_in_default_bi(int x) { 17 switch (x) { 18 case 0: 19 default: 20 return true; 21 } 22} 23bool return_in_every_case_bi(int x) { 24 switch (x) { 25 case 1: 26 return false; 27 default: 28 return true; 29 } 30} 31bool return_in_every_case_no_default_bi(int x) { 32 int val = 0; 33 switch (x) { 34 case 1: 35 return false; 36 case 2: 37 return true; 38 } 39 ++val; 40 return val == 1; 41} 42bool case_has_break_before_return_bi(int x) { 43 int val = 0; 44 switch (x) { 45 case 1: 46 break; 47 case 2: 48 return true; 49 default: 50 return true; 51 } 52 ++val; 53 return val == 1; 54} 55bool case_has_break_after_return_bi(int x) { 56 switch (x) { 57 case 1: 58 return false; 59 case 2: 60 return true; 61 default: 62 return true; 63 } 64} 65bool no_return_in_default_bi(int x) { 66 int val = 0; 67 switch (x) { 68 case 1: 69 return false; 70 case 2: 71 return true; 72 default: 73 break; 74 } 75 ++val; 76 return val == 1; 77} 78bool empty_default_bi(int x) { 79 int val = 0; 80 switch (x) { 81 case 1: 82 return false; 83 case 2: 84 return true; 85 default: 86 break; 87 } 88 ++val; 89 return val == 1; 90} 91bool return_with_fallthrough_bi(int x) { 92 switch (x) { 93 case 1: 94 case 2: 95 return true; 96 default: 97 return false; 98 } 99} 100bool fallthrough_ends_in_break_bi(int x) { 101 int val = 0; 102 switch (x) { 103 case 1: 104 case 2: 105 break; 106 default: 107 return false; 108 } 109 ++val; 110 return val == 1; 111} 112bool fallthrough_to_default_with_break_bi(int x) { 113 int val = 0; 114 switch (x) { 115 case 1: 116 case 2: 117 default: 118 break; 119 } 120 ++val; 121 return val == 1; 122} 123bool fallthrough_to_default_with_return_bi(int x) { 124 switch (x) { 125 case 1: 126 case 2: 127 default: 128 return true; 129 } 130} 131bool fallthrough_with_loop_break_bi(int x) { 132 int val = 0; 133 switch (x) { 134 case 1: 135 for (int i = 0;i < 5; ++i) { 136 ++val; 137 break; 138 } 139 case 2: 140 default: 141 return true; 142 } 143} 144bool fallthrough_with_loop_continue_bi(int x) { 145 int val = 0; 146 switch (x) { 147 case 1: 148 for (int i = 0;i < 5; ++i) { 149 ++val; 150 continue; 151 } 152 case 2: 153 default: 154 return true; 155 } 156} 157vec4 main() { 158 int x = int(colorGreen.y); 159 return ((((((((((((return_in_one_case_bi(x) && return_in_default_bi(x)) && return_in_every_case_bi(x)) && return_in_every_case_no_default_bi(x)) && case_has_break_before_return_bi(x)) && case_has_break_after_return_bi(x)) && no_return_in_default_bi(x)) && empty_default_bi(x)) && return_with_fallthrough_bi(x)) && fallthrough_ends_in_break_bi(x)) && fallthrough_to_default_with_break_bi(x)) && fallthrough_to_default_with_return_bi(x)) && fallthrough_with_loop_break_bi(x)) && fallthrough_with_loop_continue_bi(x) ? colorGreen : colorRed; 160} 161