1cb93a386Sopenharmony_ciuniform half4 colorGreen, colorRed;
2cb93a386Sopenharmony_ciint glob;
3cb93a386Sopenharmony_ci
4cb93a386Sopenharmony_cibool block_variable_hides_local_variable() {
5cb93a386Sopenharmony_ci    bool var = true;
6cb93a386Sopenharmony_ci    {
7cb93a386Sopenharmony_ci        bool var = false;
8cb93a386Sopenharmony_ci    }
9cb93a386Sopenharmony_ci    return var;
10cb93a386Sopenharmony_ci}
11cb93a386Sopenharmony_ci
12cb93a386Sopenharmony_cibool block_variable_hides_global_variable() {
13cb93a386Sopenharmony_ci    {
14cb93a386Sopenharmony_ci        int glob = 1;
15cb93a386Sopenharmony_ci    }
16cb93a386Sopenharmony_ci    return glob == 2;
17cb93a386Sopenharmony_ci}
18cb93a386Sopenharmony_ci
19cb93a386Sopenharmony_cistruct S {
20cb93a386Sopenharmony_ci    int i;
21cb93a386Sopenharmony_ci};
22cb93a386Sopenharmony_ci
23cb93a386Sopenharmony_cibool local_variable_hides_struct() {
24cb93a386Sopenharmony_ci    bool S = true;
25cb93a386Sopenharmony_ci    return S;
26cb93a386Sopenharmony_ci}
27cb93a386Sopenharmony_ci
28cb93a386Sopenharmony_cibool local_struct_variable_hides_struct_type() {
29cb93a386Sopenharmony_ci    S S = S(1);
30cb93a386Sopenharmony_ci    return S.i == 1;
31cb93a386Sopenharmony_ci}
32cb93a386Sopenharmony_ci
33cb93a386Sopenharmony_cibool local_variable_hides_global_variable() {
34cb93a386Sopenharmony_ci    int glob = 1;
35cb93a386Sopenharmony_ci    return glob == 1;
36cb93a386Sopenharmony_ci}
37cb93a386Sopenharmony_ci
38cb93a386Sopenharmony_cihalf4 main(float2 coords) {
39cb93a386Sopenharmony_ci    glob = 2;
40cb93a386Sopenharmony_ci    return (block_variable_hides_local_variable() &&
41cb93a386Sopenharmony_ci            block_variable_hides_global_variable() &&
42cb93a386Sopenharmony_ci            local_variable_hides_struct() &&
43cb93a386Sopenharmony_ci            local_struct_variable_hides_struct_type() &&
44cb93a386Sopenharmony_ci            local_variable_hides_global_variable()) ? colorGreen : colorRed;
45cb93a386Sopenharmony_ci}
46