• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#include <metal_stdlib>
2#include <simd/simd.h>
3#ifdef __clang__
4#pragma clang diagnostic ignored "-Wall"
5#endif
6using namespace metal;
7struct Uniforms {
8    half4 colorGreen;
9    half4 colorRed;
10};
11struct Inputs {
12};
13struct Outputs {
14    half4 sk_FragColor [[color(0)]];
15};
16bool return_in_one_case_bi(int x) {
17    int val = 0;
18    switch (x) {
19        case 1:
20            ++val;
21            return false;
22        default:
23            ++val;
24    }
25    return val == 1;
26}
27bool return_in_default_bi(int x) {
28    switch (x) {
29        default:
30            return true;
31    }
32}
33bool return_in_every_case_bi(int x) {
34    switch (x) {
35        case 1:
36            return false;
37        default:
38            return true;
39    }
40}
41bool return_in_every_case_no_default_bi(int x) {
42    int val = 0;
43    switch (x) {
44        case 1:
45            return false;
46        case 2:
47            return true;
48    }
49    ++val;
50    return val == 1;
51}
52bool case_has_break_before_return_bi(int x) {
53    int val = 0;
54    switch (x) {
55        case 1:
56            break;
57        case 2:
58            return true;
59        default:
60            return true;
61    }
62    ++val;
63    return val == 1;
64}
65bool case_has_break_after_return_bi(int x) {
66    switch (x) {
67        case 1:
68            return false;
69        case 2:
70            return true;
71        default:
72            return true;
73    }
74}
75bool no_return_in_default_bi(int x) {
76    int val = 0;
77    switch (x) {
78        case 1:
79            return false;
80        case 2:
81            return true;
82        default:
83            break;
84    }
85    ++val;
86    return val == 1;
87}
88bool empty_default_bi(int x) {
89    int val = 0;
90    switch (x) {
91        case 1:
92            return false;
93        case 2:
94            return true;
95        default:
96    }
97    ++val;
98    return val == 1;
99}
100bool return_with_fallthrough_bi(int x) {
101    switch (x) {
102        case 1:
103        case 2:
104            return true;
105        default:
106            return false;
107    }
108}
109bool fallthrough_ends_in_break_bi(int x) {
110    int val = 0;
111    switch (x) {
112        case 1:
113        case 2:
114            break;
115        default:
116            return false;
117    }
118    ++val;
119    return val == 1;
120}
121bool fallthrough_to_default_with_break_bi(int x) {
122    int val = 0;
123    switch (x) {
124        case 1:
125        case 2:
126        default:
127            break;
128    }
129    ++val;
130    return val == 1;
131}
132bool fallthrough_to_default_with_return_bi(int x) {
133    switch (x) {
134        case 1:
135        case 2:
136        default:
137            return true;
138    }
139}
140bool fallthrough_with_loop_break_bi(int x) {
141    int val = 0;
142    switch (x) {
143        case 1:
144            for (int i = 0;i < 5; ++i) {
145                ++val;
146                break;
147            }
148        case 2:
149        default:
150            return true;
151    }
152}
153bool fallthrough_with_loop_continue_bi(int x) {
154    int val = 0;
155    switch (x) {
156        case 1:
157            for (int i = 0;i < 5; ++i) {
158                ++val;
159                continue;
160            }
161        case 2:
162        default:
163            return true;
164    }
165}
166fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
167    Outputs _out;
168    (void)_out;
169    int x = int(_uniforms.colorGreen.y);
170    _out.sk_FragColor = ((((((((((((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) ? _uniforms.colorGreen : _uniforms.colorRed;
171    return _out;
172}
173