1#version 310 es
2
3precision mediump float;
4precision highp int;
5
6int c, d;
7layout(location = 0) in highp float x;
8layout(location = 1) in vec4 bigColor;
9layout(location = 2) in vec4 BaseColor;
10layout(location = 3) in float f;
11
12layout(location = 4) flat in int Count;
13layout(location = 5) flat in uvec4 v4;
14
15layout(location = 0) out vec4 outColor;
16
17void main()
18{
19    float f;
20    int a[2];
21
22    switch(c)
23    {
24    }
25
26    switch (c) {      // a no-error normal switch
27    case 1:
28        f = sin(x);
29        break;
30    case 2:
31        switch (d) {
32        case 1:
33            f = x * x * x;
34            break;
35        case 2:
36            f = x * x;
37            break;
38        }
39        break;
40    default:
41        f = tan(x);
42    }
43
44    vec4 color = BaseColor;
45
46    for (int i = 0; i < Count; ++i) {
47        color += bigColor;
48    }
49
50    outColor = color;
51
52    float sum = 0.0;
53    for (int i = 0; i < 4; ++i)
54        sum += float(v4[i]);
55
56    vec4 tv4;
57
58    for (int i = 0; i < 4; ++i)
59        tv4[i] = float(v4[i] * 4u);
60
61    outColor += vec4(sum) + tv4;
62
63    vec4 r;
64    r.xyz = BaseColor.xyz;
65
66    for (int i = 0; i < Count; ++i)
67        r.w = f;
68
69    outColor.xyz += r.xyz;
70
71    for (int i = 0; i < 16; i += 4)
72        outColor *= f;
73
74    int i = 0;
75    int A, B, C, D;
76    while (i<10) {
77        A = 1;
78        if (i%2 == 0) {
79            B = 2;
80            continue;
81            C = 2;
82        }
83        if (i%5 == 0) {
84            B = 2;
85            break;
86            C = 2;
87        }
88        i++;
89    }
90    D = 3;
91}
92