1e5c31af7Sopenharmony_cigroup valid "Valid scoping and name redeclaration cases" 2e5c31af7Sopenharmony_ci 3e5c31af7Sopenharmony_ci case local_variable_hides_global_variable 4e5c31af7Sopenharmony_ci version 100 es 5e5c31af7Sopenharmony_ci values 6e5c31af7Sopenharmony_ci { 7e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 8e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 9e5c31af7Sopenharmony_ci } 10e5c31af7Sopenharmony_ci 11e5c31af7Sopenharmony_ci both "" 12e5c31af7Sopenharmony_ci #version 100 13e5c31af7Sopenharmony_ci precision mediump float; 14e5c31af7Sopenharmony_ci ${DECLARATIONS} 15e5c31af7Sopenharmony_ci 16e5c31af7Sopenharmony_ci int a = -1; 17e5c31af7Sopenharmony_ci 18e5c31af7Sopenharmony_ci void main() 19e5c31af7Sopenharmony_ci { 20e5c31af7Sopenharmony_ci ${SETUP} 21e5c31af7Sopenharmony_ci int a = in0; 22e5c31af7Sopenharmony_ci 23e5c31af7Sopenharmony_ci out0 = a; 24e5c31af7Sopenharmony_ci ${OUTPUT} 25e5c31af7Sopenharmony_ci } 26e5c31af7Sopenharmony_ci "" 27e5c31af7Sopenharmony_ci end 28e5c31af7Sopenharmony_ci 29e5c31af7Sopenharmony_ci case block_variable_hides_local_variable 30e5c31af7Sopenharmony_ci version 100 es 31e5c31af7Sopenharmony_ci values 32e5c31af7Sopenharmony_ci { 33e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 34e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 35e5c31af7Sopenharmony_ci } 36e5c31af7Sopenharmony_ci 37e5c31af7Sopenharmony_ci both "" 38e5c31af7Sopenharmony_ci #version 100 39e5c31af7Sopenharmony_ci precision mediump float; 40e5c31af7Sopenharmony_ci ${DECLARATIONS} 41e5c31af7Sopenharmony_ci void main() 42e5c31af7Sopenharmony_ci { 43e5c31af7Sopenharmony_ci ${SETUP} 44e5c31af7Sopenharmony_ci int a = in0; 45e5c31af7Sopenharmony_ci { 46e5c31af7Sopenharmony_ci int a = -1; 47e5c31af7Sopenharmony_ci } 48e5c31af7Sopenharmony_ci out0 = a; 49e5c31af7Sopenharmony_ci ${OUTPUT} 50e5c31af7Sopenharmony_ci } 51e5c31af7Sopenharmony_ci "" 52e5c31af7Sopenharmony_ci end 53e5c31af7Sopenharmony_ci 54e5c31af7Sopenharmony_ci case block_variable_hides_global_variable 55e5c31af7Sopenharmony_ci version 100 es 56e5c31af7Sopenharmony_ci values 57e5c31af7Sopenharmony_ci { 58e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 59e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 60e5c31af7Sopenharmony_ci } 61e5c31af7Sopenharmony_ci 62e5c31af7Sopenharmony_ci both "" 63e5c31af7Sopenharmony_ci #version 100 64e5c31af7Sopenharmony_ci precision mediump float; 65e5c31af7Sopenharmony_ci ${DECLARATIONS} 66e5c31af7Sopenharmony_ci 67e5c31af7Sopenharmony_ci int a = -1; 68e5c31af7Sopenharmony_ci 69e5c31af7Sopenharmony_ci void main() 70e5c31af7Sopenharmony_ci { 71e5c31af7Sopenharmony_ci ${SETUP} 72e5c31af7Sopenharmony_ci { 73e5c31af7Sopenharmony_ci int a = in0; 74e5c31af7Sopenharmony_ci 75e5c31af7Sopenharmony_ci out0 = a; 76e5c31af7Sopenharmony_ci } 77e5c31af7Sopenharmony_ci ${OUTPUT} 78e5c31af7Sopenharmony_ci } 79e5c31af7Sopenharmony_ci "" 80e5c31af7Sopenharmony_ci end 81e5c31af7Sopenharmony_ci 82e5c31af7Sopenharmony_ci case for_init_statement_variable_hides_local_variable 83e5c31af7Sopenharmony_ci version 100 es 84e5c31af7Sopenharmony_ci values 85e5c31af7Sopenharmony_ci { 86e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 87e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 88e5c31af7Sopenharmony_ci } 89e5c31af7Sopenharmony_ci 90e5c31af7Sopenharmony_ci both "" 91e5c31af7Sopenharmony_ci #version 100 92e5c31af7Sopenharmony_ci precision mediump float; 93e5c31af7Sopenharmony_ci ${DECLARATIONS} 94e5c31af7Sopenharmony_ci void main() 95e5c31af7Sopenharmony_ci { 96e5c31af7Sopenharmony_ci ${SETUP} 97e5c31af7Sopenharmony_ci int a = in0; 98e5c31af7Sopenharmony_ci for (int a = 0; a < 10; a++) 99e5c31af7Sopenharmony_ci { 100e5c31af7Sopenharmony_ci } 101e5c31af7Sopenharmony_ci out0 = a; 102e5c31af7Sopenharmony_ci ${OUTPUT} 103e5c31af7Sopenharmony_ci } 104e5c31af7Sopenharmony_ci "" 105e5c31af7Sopenharmony_ci end 106e5c31af7Sopenharmony_ci 107e5c31af7Sopenharmony_ci case while_condition_variable_hides_local_variable 108e5c31af7Sopenharmony_ci version 100 es 109e5c31af7Sopenharmony_ci require full_glsl_es_100_support 110e5c31af7Sopenharmony_ci values 111e5c31af7Sopenharmony_ci { 112e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 113e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 114e5c31af7Sopenharmony_ci } 115e5c31af7Sopenharmony_ci 116e5c31af7Sopenharmony_ci both "" 117e5c31af7Sopenharmony_ci #version 100 118e5c31af7Sopenharmony_ci precision mediump float; 119e5c31af7Sopenharmony_ci ${DECLARATIONS} 120e5c31af7Sopenharmony_ci void main() 121e5c31af7Sopenharmony_ci { 122e5c31af7Sopenharmony_ci ${SETUP} 123e5c31af7Sopenharmony_ci int a = in0; 124e5c31af7Sopenharmony_ci int i = 0; 125e5c31af7Sopenharmony_ci while (bool a = (i < 1)) 126e5c31af7Sopenharmony_ci { 127e5c31af7Sopenharmony_ci i++; 128e5c31af7Sopenharmony_ci } 129e5c31af7Sopenharmony_ci out0 = a; 130e5c31af7Sopenharmony_ci ${OUTPUT} 131e5c31af7Sopenharmony_ci } 132e5c31af7Sopenharmony_ci "" 133e5c31af7Sopenharmony_ci end 134e5c31af7Sopenharmony_ci 135e5c31af7Sopenharmony_ci case for_init_statement_variable_hides_global_variable 136e5c31af7Sopenharmony_ci version 100 es 137e5c31af7Sopenharmony_ci values 138e5c31af7Sopenharmony_ci { 139e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 140e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 141e5c31af7Sopenharmony_ci } 142e5c31af7Sopenharmony_ci 143e5c31af7Sopenharmony_ci both "" 144e5c31af7Sopenharmony_ci #version 100 145e5c31af7Sopenharmony_ci precision mediump float; 146e5c31af7Sopenharmony_ci ${DECLARATIONS} 147e5c31af7Sopenharmony_ci 148e5c31af7Sopenharmony_ci int a = 5; 149e5c31af7Sopenharmony_ci 150e5c31af7Sopenharmony_ci void main() 151e5c31af7Sopenharmony_ci { 152e5c31af7Sopenharmony_ci ${SETUP} 153e5c31af7Sopenharmony_ci for (int a = 0; a < 10; a++) 154e5c31af7Sopenharmony_ci { 155e5c31af7Sopenharmony_ci } 156e5c31af7Sopenharmony_ci out0 = in0 + a - 5; 157e5c31af7Sopenharmony_ci ${OUTPUT} 158e5c31af7Sopenharmony_ci } 159e5c31af7Sopenharmony_ci "" 160e5c31af7Sopenharmony_ci end 161e5c31af7Sopenharmony_ci 162e5c31af7Sopenharmony_ci case while_condition_variable_hides_global_variable 163e5c31af7Sopenharmony_ci version 100 es 164e5c31af7Sopenharmony_ci require full_glsl_es_100_support 165e5c31af7Sopenharmony_ci values 166e5c31af7Sopenharmony_ci { 167e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 168e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 169e5c31af7Sopenharmony_ci } 170e5c31af7Sopenharmony_ci 171e5c31af7Sopenharmony_ci both "" 172e5c31af7Sopenharmony_ci #version 100 173e5c31af7Sopenharmony_ci precision mediump float; 174e5c31af7Sopenharmony_ci ${DECLARATIONS} 175e5c31af7Sopenharmony_ci 176e5c31af7Sopenharmony_ci int a = 5; 177e5c31af7Sopenharmony_ci 178e5c31af7Sopenharmony_ci void main() 179e5c31af7Sopenharmony_ci { 180e5c31af7Sopenharmony_ci ${SETUP} 181e5c31af7Sopenharmony_ci int i = 0; 182e5c31af7Sopenharmony_ci while (bool a = (i < 1)) 183e5c31af7Sopenharmony_ci { 184e5c31af7Sopenharmony_ci i++; 185e5c31af7Sopenharmony_ci } 186e5c31af7Sopenharmony_ci out0 = in0 + a - 5; 187e5c31af7Sopenharmony_ci ${OUTPUT} 188e5c31af7Sopenharmony_ci } 189e5c31af7Sopenharmony_ci "" 190e5c31af7Sopenharmony_ci end 191e5c31af7Sopenharmony_ci 192e5c31af7Sopenharmony_ci case variable_in_if_hides_global_variable 193e5c31af7Sopenharmony_ci version 100 es 194e5c31af7Sopenharmony_ci values 195e5c31af7Sopenharmony_ci { 196e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 197e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 198e5c31af7Sopenharmony_ci } 199e5c31af7Sopenharmony_ci 200e5c31af7Sopenharmony_ci both "" 201e5c31af7Sopenharmony_ci #version 100 202e5c31af7Sopenharmony_ci precision mediump float; 203e5c31af7Sopenharmony_ci ${DECLARATIONS} 204e5c31af7Sopenharmony_ci 205e5c31af7Sopenharmony_ci int a = 1; 206e5c31af7Sopenharmony_ci 207e5c31af7Sopenharmony_ci void main() 208e5c31af7Sopenharmony_ci { 209e5c31af7Sopenharmony_ci ${SETUP} 210e5c31af7Sopenharmony_ci if (true) 211e5c31af7Sopenharmony_ci int a = 42; 212e5c31af7Sopenharmony_ci out0 = a*in0; 213e5c31af7Sopenharmony_ci ${OUTPUT} 214e5c31af7Sopenharmony_ci } 215e5c31af7Sopenharmony_ci "" 216e5c31af7Sopenharmony_ci end 217e5c31af7Sopenharmony_ci 218e5c31af7Sopenharmony_ci case variable_from_outer_scope_visible_in_initializer 219e5c31af7Sopenharmony_ci version 100 es 220e5c31af7Sopenharmony_ci values 221e5c31af7Sopenharmony_ci { 222e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 223e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 224e5c31af7Sopenharmony_ci } 225e5c31af7Sopenharmony_ci 226e5c31af7Sopenharmony_ci both "" 227e5c31af7Sopenharmony_ci #version 100 228e5c31af7Sopenharmony_ci precision mediump float; 229e5c31af7Sopenharmony_ci ${DECLARATIONS} 230e5c31af7Sopenharmony_ci void main() 231e5c31af7Sopenharmony_ci { 232e5c31af7Sopenharmony_ci ${SETUP} 233e5c31af7Sopenharmony_ci int a = in0; 234e5c31af7Sopenharmony_ci { 235e5c31af7Sopenharmony_ci int a = a+5, b = a-5; 236e5c31af7Sopenharmony_ci out0 = b; 237e5c31af7Sopenharmony_ci a = 42; 238e5c31af7Sopenharmony_ci } 239e5c31af7Sopenharmony_ci out0 = out0 + a - in0; 240e5c31af7Sopenharmony_ci ${OUTPUT} 241e5c31af7Sopenharmony_ci } 242e5c31af7Sopenharmony_ci "" 243e5c31af7Sopenharmony_ci end 244e5c31af7Sopenharmony_ci 245e5c31af7Sopenharmony_ci case local_int_variable_hides_struct_type 246e5c31af7Sopenharmony_ci version 100 es 247e5c31af7Sopenharmony_ci values 248e5c31af7Sopenharmony_ci { 249e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 250e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 251e5c31af7Sopenharmony_ci } 252e5c31af7Sopenharmony_ci 253e5c31af7Sopenharmony_ci both "" 254e5c31af7Sopenharmony_ci #version 100 255e5c31af7Sopenharmony_ci precision mediump float; 256e5c31af7Sopenharmony_ci ${DECLARATIONS} 257e5c31af7Sopenharmony_ci 258e5c31af7Sopenharmony_ci struct S { int val; }; 259e5c31af7Sopenharmony_ci 260e5c31af7Sopenharmony_ci void main() 261e5c31af7Sopenharmony_ci { 262e5c31af7Sopenharmony_ci ${SETUP} 263e5c31af7Sopenharmony_ci int S = S(in0).val; 264e5c31af7Sopenharmony_ci out0 = S; 265e5c31af7Sopenharmony_ci ${OUTPUT} 266e5c31af7Sopenharmony_ci } 267e5c31af7Sopenharmony_ci "" 268e5c31af7Sopenharmony_ci end 269e5c31af7Sopenharmony_ci 270e5c31af7Sopenharmony_ci case local_struct_variable_hides_struct_type 271e5c31af7Sopenharmony_ci version 100 es 272e5c31af7Sopenharmony_ci values 273e5c31af7Sopenharmony_ci { 274e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 275e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 276e5c31af7Sopenharmony_ci } 277e5c31af7Sopenharmony_ci 278e5c31af7Sopenharmony_ci both "" 279e5c31af7Sopenharmony_ci #version 100 280e5c31af7Sopenharmony_ci precision mediump float; 281e5c31af7Sopenharmony_ci ${DECLARATIONS} 282e5c31af7Sopenharmony_ci 283e5c31af7Sopenharmony_ci struct S { int val; }; 284e5c31af7Sopenharmony_ci 285e5c31af7Sopenharmony_ci void main() 286e5c31af7Sopenharmony_ci { 287e5c31af7Sopenharmony_ci ${SETUP} 288e5c31af7Sopenharmony_ci S S = S(in0); 289e5c31af7Sopenharmony_ci out0 = S.val; 290e5c31af7Sopenharmony_ci ${OUTPUT} 291e5c31af7Sopenharmony_ci } 292e5c31af7Sopenharmony_ci "" 293e5c31af7Sopenharmony_ci end 294e5c31af7Sopenharmony_ci 295e5c31af7Sopenharmony_ci case local_variable_hides_function 296e5c31af7Sopenharmony_ci version 100 es 297e5c31af7Sopenharmony_ci values 298e5c31af7Sopenharmony_ci { 299e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 300e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 301e5c31af7Sopenharmony_ci } 302e5c31af7Sopenharmony_ci 303e5c31af7Sopenharmony_ci both "" 304e5c31af7Sopenharmony_ci #version 100 305e5c31af7Sopenharmony_ci precision mediump float; 306e5c31af7Sopenharmony_ci ${DECLARATIONS} 307e5c31af7Sopenharmony_ci 308e5c31af7Sopenharmony_ci int foo (int x) { return x; } 309e5c31af7Sopenharmony_ci 310e5c31af7Sopenharmony_ci void main() 311e5c31af7Sopenharmony_ci { 312e5c31af7Sopenharmony_ci ${SETUP} 313e5c31af7Sopenharmony_ci int foo = in0; 314e5c31af7Sopenharmony_ci out0 = foo; 315e5c31af7Sopenharmony_ci ${OUTPUT} 316e5c31af7Sopenharmony_ci } 317e5c31af7Sopenharmony_ci "" 318e5c31af7Sopenharmony_ci end 319e5c31af7Sopenharmony_ci 320e5c31af7Sopenharmony_ci case function_parameter_hides_global_variable 321e5c31af7Sopenharmony_ci version 100 es 322e5c31af7Sopenharmony_ci values 323e5c31af7Sopenharmony_ci { 324e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 325e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 326e5c31af7Sopenharmony_ci } 327e5c31af7Sopenharmony_ci 328e5c31af7Sopenharmony_ci both "" 329e5c31af7Sopenharmony_ci #version 100 330e5c31af7Sopenharmony_ci precision mediump float; 331e5c31af7Sopenharmony_ci ${DECLARATIONS} 332e5c31af7Sopenharmony_ci 333e5c31af7Sopenharmony_ci int a = -1; 334e5c31af7Sopenharmony_ci 335e5c31af7Sopenharmony_ci int func (int a) { return a; } 336e5c31af7Sopenharmony_ci 337e5c31af7Sopenharmony_ci void main() 338e5c31af7Sopenharmony_ci { 339e5c31af7Sopenharmony_ci ${SETUP} 340e5c31af7Sopenharmony_ci out0 = func(in0); 341e5c31af7Sopenharmony_ci ${OUTPUT} 342e5c31af7Sopenharmony_ci } 343e5c31af7Sopenharmony_ci "" 344e5c31af7Sopenharmony_ci end 345e5c31af7Sopenharmony_ci 346e5c31af7Sopenharmony_ci case function_parameter_hides_struct_type 347e5c31af7Sopenharmony_ci version 100 es 348e5c31af7Sopenharmony_ci values 349e5c31af7Sopenharmony_ci { 350e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 351e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 352e5c31af7Sopenharmony_ci } 353e5c31af7Sopenharmony_ci 354e5c31af7Sopenharmony_ci both "" 355e5c31af7Sopenharmony_ci #version 100 356e5c31af7Sopenharmony_ci precision mediump float; 357e5c31af7Sopenharmony_ci ${DECLARATIONS} 358e5c31af7Sopenharmony_ci 359e5c31af7Sopenharmony_ci struct S { int x; }; 360e5c31af7Sopenharmony_ci 361e5c31af7Sopenharmony_ci int func (int S) { return S; } 362e5c31af7Sopenharmony_ci 363e5c31af7Sopenharmony_ci void main() 364e5c31af7Sopenharmony_ci { 365e5c31af7Sopenharmony_ci ${SETUP} 366e5c31af7Sopenharmony_ci out0 = func(in0); 367e5c31af7Sopenharmony_ci ${OUTPUT} 368e5c31af7Sopenharmony_ci } 369e5c31af7Sopenharmony_ci "" 370e5c31af7Sopenharmony_ci end 371e5c31af7Sopenharmony_ci 372e5c31af7Sopenharmony_ci case function_parameter_hides_function 373e5c31af7Sopenharmony_ci version 100 es 374e5c31af7Sopenharmony_ci values 375e5c31af7Sopenharmony_ci { 376e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 377e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 378e5c31af7Sopenharmony_ci } 379e5c31af7Sopenharmony_ci 380e5c31af7Sopenharmony_ci both "" 381e5c31af7Sopenharmony_ci #version 100 382e5c31af7Sopenharmony_ci precision mediump float; 383e5c31af7Sopenharmony_ci ${DECLARATIONS} 384e5c31af7Sopenharmony_ci 385e5c31af7Sopenharmony_ci int func (int func) { return func; } 386e5c31af7Sopenharmony_ci 387e5c31af7Sopenharmony_ci void main() 388e5c31af7Sopenharmony_ci { 389e5c31af7Sopenharmony_ci ${SETUP} 390e5c31af7Sopenharmony_ci out0 = func(in0); 391e5c31af7Sopenharmony_ci ${OUTPUT} 392e5c31af7Sopenharmony_ci } 393e5c31af7Sopenharmony_ci "" 394e5c31af7Sopenharmony_ci end 395e5c31af7Sopenharmony_ci 396e5c31af7Sopenharmony_ci case local_variable_in_inner_scope_hides_function_parameter 397e5c31af7Sopenharmony_ci version 100 es 398e5c31af7Sopenharmony_ci values 399e5c31af7Sopenharmony_ci { 400e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 401e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 402e5c31af7Sopenharmony_ci } 403e5c31af7Sopenharmony_ci 404e5c31af7Sopenharmony_ci both "" 405e5c31af7Sopenharmony_ci #version 100 406e5c31af7Sopenharmony_ci precision mediump float; 407e5c31af7Sopenharmony_ci ${DECLARATIONS} 408e5c31af7Sopenharmony_ci int func (int inp, int x) { { int x = 5; return inp + x - 5; } } 409e5c31af7Sopenharmony_ci 410e5c31af7Sopenharmony_ci void main() 411e5c31af7Sopenharmony_ci { 412e5c31af7Sopenharmony_ci ${SETUP} 413e5c31af7Sopenharmony_ci out0 = func(in0, 42); 414e5c31af7Sopenharmony_ci ${OUTPUT} 415e5c31af7Sopenharmony_ci } 416e5c31af7Sopenharmony_ci "" 417e5c31af7Sopenharmony_ci end 418e5c31af7Sopenharmony_ci 419e5c31af7Sopenharmony_ci case local_variable_hides_function_parameter 420e5c31af7Sopenharmony_ci version 100 es 421e5c31af7Sopenharmony_ci values 422e5c31af7Sopenharmony_ci { 423e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 424e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 425e5c31af7Sopenharmony_ci } 426e5c31af7Sopenharmony_ci 427e5c31af7Sopenharmony_ci both "" 428e5c31af7Sopenharmony_ci #version 100 429e5c31af7Sopenharmony_ci precision mediump float; 430e5c31af7Sopenharmony_ci ${DECLARATIONS} 431e5c31af7Sopenharmony_ci int func (int inp, int x) { int x = 5; return inp + x - 5; } 432e5c31af7Sopenharmony_ci 433e5c31af7Sopenharmony_ci void main() 434e5c31af7Sopenharmony_ci { 435e5c31af7Sopenharmony_ci ${SETUP} 436e5c31af7Sopenharmony_ci out0 = func(in0, 42); 437e5c31af7Sopenharmony_ci ${OUTPUT} 438e5c31af7Sopenharmony_ci } 439e5c31af7Sopenharmony_ci "" 440e5c31af7Sopenharmony_ci end 441e5c31af7Sopenharmony_ci 442e5c31af7Sopenharmony_ciend 443e5c31af7Sopenharmony_ci 444e5c31af7Sopenharmony_cigroup invalid "Invalid scoping behavior" 445e5c31af7Sopenharmony_ci 446e5c31af7Sopenharmony_ci case redeclare_global_variable 447e5c31af7Sopenharmony_ci version 100 es 448e5c31af7Sopenharmony_ci expect compile_fail 449e5c31af7Sopenharmony_ci both "" 450e5c31af7Sopenharmony_ci #version 100 451e5c31af7Sopenharmony_ci precision mediump float; 452e5c31af7Sopenharmony_ci ${DECLARATIONS} 453e5c31af7Sopenharmony_ci 454e5c31af7Sopenharmony_ci int a; 455e5c31af7Sopenharmony_ci float a; 456e5c31af7Sopenharmony_ci 457e5c31af7Sopenharmony_ci void main() 458e5c31af7Sopenharmony_ci { 459e5c31af7Sopenharmony_ci a = 1.0; 460e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 461e5c31af7Sopenharmony_ci } 462e5c31af7Sopenharmony_ci "" 463e5c31af7Sopenharmony_ci end 464e5c31af7Sopenharmony_ci 465e5c31af7Sopenharmony_ci case redeclare_local_variable 466e5c31af7Sopenharmony_ci version 100 es 467e5c31af7Sopenharmony_ci expect compile_fail 468e5c31af7Sopenharmony_ci both "" 469e5c31af7Sopenharmony_ci #version 100 470e5c31af7Sopenharmony_ci precision mediump float; 471e5c31af7Sopenharmony_ci ${DECLARATIONS} 472e5c31af7Sopenharmony_ci 473e5c31af7Sopenharmony_ci void main() 474e5c31af7Sopenharmony_ci { 475e5c31af7Sopenharmony_ci int a; 476e5c31af7Sopenharmony_ci float a; 477e5c31af7Sopenharmony_ci a = 1.0; 478e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 479e5c31af7Sopenharmony_ci } 480e5c31af7Sopenharmony_ci "" 481e5c31af7Sopenharmony_ci end 482e5c31af7Sopenharmony_ci 483e5c31af7Sopenharmony_ci case redeclare_for_init_statement_variable 484e5c31af7Sopenharmony_ci version 100 es 485e5c31af7Sopenharmony_ci expect compile_fail 486e5c31af7Sopenharmony_ci both "" 487e5c31af7Sopenharmony_ci #version 100 488e5c31af7Sopenharmony_ci precision mediump float; 489e5c31af7Sopenharmony_ci ${DECLARATIONS} 490e5c31af7Sopenharmony_ci 491e5c31af7Sopenharmony_ci void main() 492e5c31af7Sopenharmony_ci { 493e5c31af7Sopenharmony_ci for (int i = 0; i < 10; i++) 494e5c31af7Sopenharmony_ci { 495e5c31af7Sopenharmony_ci int i = 11; 496e5c31af7Sopenharmony_ci } 497e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(0.0); 498e5c31af7Sopenharmony_ci } 499e5c31af7Sopenharmony_ci "" 500e5c31af7Sopenharmony_ci end 501e5c31af7Sopenharmony_ci 502e5c31af7Sopenharmony_ci case redeclare_for_condition_variable 503e5c31af7Sopenharmony_ci version 100 es 504e5c31af7Sopenharmony_ci expect compile_fail 505e5c31af7Sopenharmony_ci both "" 506e5c31af7Sopenharmony_ci #version 100 507e5c31af7Sopenharmony_ci precision mediump float; 508e5c31af7Sopenharmony_ci ${DECLARATIONS} 509e5c31af7Sopenharmony_ci 510e5c31af7Sopenharmony_ci void main() 511e5c31af7Sopenharmony_ci { 512e5c31af7Sopenharmony_ci for (int i = 0; int a = (i < 10); i++) 513e5c31af7Sopenharmony_ci { 514e5c31af7Sopenharmony_ci int a = 0; 515e5c31af7Sopenharmony_ci } 516e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(0.0); 517e5c31af7Sopenharmony_ci } 518e5c31af7Sopenharmony_ci "" 519e5c31af7Sopenharmony_ci end 520e5c31af7Sopenharmony_ci 521e5c31af7Sopenharmony_ci case redeclare_for_init_statement_variable_in_for_condition 522e5c31af7Sopenharmony_ci version 100 es 523e5c31af7Sopenharmony_ci expect compile_fail 524e5c31af7Sopenharmony_ci both "" 525e5c31af7Sopenharmony_ci #version 100 526e5c31af7Sopenharmony_ci precision mediump float; 527e5c31af7Sopenharmony_ci ${DECLARATIONS} 528e5c31af7Sopenharmony_ci 529e5c31af7Sopenharmony_ci void main() 530e5c31af7Sopenharmony_ci { 531e5c31af7Sopenharmony_ci float a; 532e5c31af7Sopenharmony_ci for (int i = 0; int i = (i < 10); i++) 533e5c31af7Sopenharmony_ci { 534e5c31af7Sopenharmony_ci a = sin(i); 535e5c31af7Sopenharmony_ci } 536e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 537e5c31af7Sopenharmony_ci } 538e5c31af7Sopenharmony_ci "" 539e5c31af7Sopenharmony_ci end 540e5c31af7Sopenharmony_ci 541e5c31af7Sopenharmony_ci case redeclare_while_condition_variable 542e5c31af7Sopenharmony_ci version 100 es 543e5c31af7Sopenharmony_ci expect compile_fail 544e5c31af7Sopenharmony_ci both "" 545e5c31af7Sopenharmony_ci #version 100 546e5c31af7Sopenharmony_ci precision mediump float; 547e5c31af7Sopenharmony_ci ${DECLARATIONS} 548e5c31af7Sopenharmony_ci 549e5c31af7Sopenharmony_ci void main() 550e5c31af7Sopenharmony_ci { 551e5c31af7Sopenharmony_ci int a = 0; 552e5c31af7Sopenharmony_ci while (int i = (a < 5)) 553e5c31af7Sopenharmony_ci { 554e5c31af7Sopenharmony_ci int i = 11; 555e5c31af7Sopenharmony_ci a += i; 556e5c31af7Sopenharmony_ci } 557e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(0.0); 558e5c31af7Sopenharmony_ci } 559e5c31af7Sopenharmony_ci "" 560e5c31af7Sopenharmony_ci end 561e5c31af7Sopenharmony_ci 562e5c31af7Sopenharmony_ci case redeclare_function 563e5c31af7Sopenharmony_ci version 100 es 564e5c31af7Sopenharmony_ci expect compile_fail 565e5c31af7Sopenharmony_ci both "" 566e5c31af7Sopenharmony_ci #version 100 567e5c31af7Sopenharmony_ci precision mediump float; 568e5c31af7Sopenharmony_ci ${DECLARATIONS} 569e5c31af7Sopenharmony_ci 570e5c31af7Sopenharmony_ci float func(float x); 571e5c31af7Sopenharmony_ci float func(float x); 572e5c31af7Sopenharmony_ci 573e5c31af7Sopenharmony_ci float func(float x) { return x + 1.0; } 574e5c31af7Sopenharmony_ci 575e5c31af7Sopenharmony_ci void main() 576e5c31af7Sopenharmony_ci { 577e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(func(1.0)); 578e5c31af7Sopenharmony_ci } 579e5c31af7Sopenharmony_ci "" 580e5c31af7Sopenharmony_ci end 581e5c31af7Sopenharmony_ci 582e5c31af7Sopenharmony_ci case redefine_function 583e5c31af7Sopenharmony_ci version 100 es 584e5c31af7Sopenharmony_ci expect compile_fail 585e5c31af7Sopenharmony_ci both "" 586e5c31af7Sopenharmony_ci #version 100 587e5c31af7Sopenharmony_ci precision mediump float; 588e5c31af7Sopenharmony_ci ${DECLARATIONS} 589e5c31af7Sopenharmony_ci 590e5c31af7Sopenharmony_ci float func(float x); 591e5c31af7Sopenharmony_ci 592e5c31af7Sopenharmony_ci float func(float x) { return x + 1.0; } 593e5c31af7Sopenharmony_ci float func(float x) { return x + 2.0; } 594e5c31af7Sopenharmony_ci 595e5c31af7Sopenharmony_ci void main() 596e5c31af7Sopenharmony_ci { 597e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(func(1.0)); 598e5c31af7Sopenharmony_ci } 599e5c31af7Sopenharmony_ci "" 600e5c31af7Sopenharmony_ci end 601e5c31af7Sopenharmony_ci 602e5c31af7Sopenharmony_ci case redeclare_builtin 603e5c31af7Sopenharmony_ci version 100 es 604e5c31af7Sopenharmony_ci expect compile_fail 605e5c31af7Sopenharmony_ci both "" 606e5c31af7Sopenharmony_ci #version 100 607e5c31af7Sopenharmony_ci precision mediump float; 608e5c31af7Sopenharmony_ci ${DECLARATIONS} 609e5c31af7Sopenharmony_ci 610e5c31af7Sopenharmony_ci float sin(float x); 611e5c31af7Sopenharmony_ci 612e5c31af7Sopenharmony_ci void main() 613e5c31af7Sopenharmony_ci { 614e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(sin(1.0)); 615e5c31af7Sopenharmony_ci } 616e5c31af7Sopenharmony_ci "" 617e5c31af7Sopenharmony_ci end 618e5c31af7Sopenharmony_ci 619e5c31af7Sopenharmony_ci case redefine_builtin 620e5c31af7Sopenharmony_ci version 100 es 621e5c31af7Sopenharmony_ci expect compile_fail 622e5c31af7Sopenharmony_ci both "" 623e5c31af7Sopenharmony_ci #version 100 624e5c31af7Sopenharmony_ci precision mediump float; 625e5c31af7Sopenharmony_ci ${DECLARATIONS} 626e5c31af7Sopenharmony_ci 627e5c31af7Sopenharmony_ci float sin(float x) { return x + 1.0; } 628e5c31af7Sopenharmony_ci 629e5c31af7Sopenharmony_ci void main() 630e5c31af7Sopenharmony_ci { 631e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(sin(1.0)); 632e5c31af7Sopenharmony_ci } 633e5c31af7Sopenharmony_ci "" 634e5c31af7Sopenharmony_ci end 635e5c31af7Sopenharmony_ci 636e5c31af7Sopenharmony_ci case conflict_function_struct 637e5c31af7Sopenharmony_ci version 100 es 638e5c31af7Sopenharmony_ci expect compile_fail 639e5c31af7Sopenharmony_ci both "" 640e5c31af7Sopenharmony_ci #version 100 641e5c31af7Sopenharmony_ci precision mediump float; 642e5c31af7Sopenharmony_ci ${DECLARATIONS} 643e5c31af7Sopenharmony_ci 644e5c31af7Sopenharmony_ci void f(int x); 645e5c31af7Sopenharmony_ci struct f { int x; }; 646e5c31af7Sopenharmony_ci 647e5c31af7Sopenharmony_ci void main() 648e5c31af7Sopenharmony_ci { 649e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(1); 650e5c31af7Sopenharmony_ci } 651e5c31af7Sopenharmony_ci "" 652e5c31af7Sopenharmony_ci end 653e5c31af7Sopenharmony_ci 654e5c31af7Sopenharmony_ci case conflict_function_variable 655e5c31af7Sopenharmony_ci version 100 es 656e5c31af7Sopenharmony_ci expect compile_fail 657e5c31af7Sopenharmony_ci both "" 658e5c31af7Sopenharmony_ci #version 100 659e5c31af7Sopenharmony_ci precision mediump float; 660e5c31af7Sopenharmony_ci ${DECLARATIONS} 661e5c31af7Sopenharmony_ci 662e5c31af7Sopenharmony_ci void f(int x); 663e5c31af7Sopenharmony_ci float f; 664e5c31af7Sopenharmony_ci 665e5c31af7Sopenharmony_ci void main() 666e5c31af7Sopenharmony_ci { 667e5c31af7Sopenharmony_ci f = 1.0; 668e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(f); 669e5c31af7Sopenharmony_ci } 670e5c31af7Sopenharmony_ci "" 671e5c31af7Sopenharmony_ci end 672e5c31af7Sopenharmony_ci 673e5c31af7Sopenharmony_ci case use_global_variable_before_declaration 674e5c31af7Sopenharmony_ci version 100 es 675e5c31af7Sopenharmony_ci expect compile_fail 676e5c31af7Sopenharmony_ci both "" 677e5c31af7Sopenharmony_ci #version 100 678e5c31af7Sopenharmony_ci precision mediump float; 679e5c31af7Sopenharmony_ci ${DECLARATIONS} 680e5c31af7Sopenharmony_ci 681e5c31af7Sopenharmony_ci void func() 682e5c31af7Sopenharmony_ci { 683e5c31af7Sopenharmony_ci a = 2.0; 684e5c31af7Sopenharmony_ci } 685e5c31af7Sopenharmony_ci 686e5c31af7Sopenharmony_ci float a; 687e5c31af7Sopenharmony_ci 688e5c31af7Sopenharmony_ci void main() 689e5c31af7Sopenharmony_ci { 690e5c31af7Sopenharmony_ci func(); 691e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 692e5c31af7Sopenharmony_ci } 693e5c31af7Sopenharmony_ci "" 694e5c31af7Sopenharmony_ci end 695e5c31af7Sopenharmony_ci 696e5c31af7Sopenharmony_ci case use_local_variable_before_declaration 697e5c31af7Sopenharmony_ci version 100 es 698e5c31af7Sopenharmony_ci expect compile_fail 699e5c31af7Sopenharmony_ci both "" 700e5c31af7Sopenharmony_ci #version 100 701e5c31af7Sopenharmony_ci precision mediump float; 702e5c31af7Sopenharmony_ci ${DECLARATIONS} 703e5c31af7Sopenharmony_ci 704e5c31af7Sopenharmony_ci void main() 705e5c31af7Sopenharmony_ci { 706e5c31af7Sopenharmony_ci float a = 1.0; 707e5c31af7Sopenharmony_ci a = b; 708e5c31af7Sopenharmony_ci float b = 2.0; 709e5c31af7Sopenharmony_ci 710e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 711e5c31af7Sopenharmony_ci } 712e5c31af7Sopenharmony_ci "" 713e5c31af7Sopenharmony_ci end 714e5c31af7Sopenharmony_ci 715e5c31af7Sopenharmony_ci case use_struct_type_before_declaration 716e5c31af7Sopenharmony_ci version 100 es 717e5c31af7Sopenharmony_ci expect compile_fail 718e5c31af7Sopenharmony_ci both "" 719e5c31af7Sopenharmony_ci #version 100 720e5c31af7Sopenharmony_ci precision mediump float; 721e5c31af7Sopenharmony_ci ${DECLARATIONS} 722e5c31af7Sopenharmony_ci 723e5c31af7Sopenharmony_ci float func (float x) { return S(x).val; } 724e5c31af7Sopenharmony_ci struct S { float val; }; 725e5c31af7Sopenharmony_ci 726e5c31af7Sopenharmony_ci void main() 727e5c31af7Sopenharmony_ci { 728e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(func(1.0)); 729e5c31af7Sopenharmony_ci } 730e5c31af7Sopenharmony_ci "" 731e5c31af7Sopenharmony_ci end 732e5c31af7Sopenharmony_ci 733e5c31af7Sopenharmony_ci case use_function_before_declaration 734e5c31af7Sopenharmony_ci version 100 es 735e5c31af7Sopenharmony_ci expect compile_fail 736e5c31af7Sopenharmony_ci both "" 737e5c31af7Sopenharmony_ci #version 100 738e5c31af7Sopenharmony_ci precision mediump float; 739e5c31af7Sopenharmony_ci ${DECLARATIONS} 740e5c31af7Sopenharmony_ci 741e5c31af7Sopenharmony_ci float func (float x) { return bar(x); } 742e5c31af7Sopenharmony_ci float bar (float x) { return x; } 743e5c31af7Sopenharmony_ci 744e5c31af7Sopenharmony_ci void main() 745e5c31af7Sopenharmony_ci { 746e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(func(1.0)); 747e5c31af7Sopenharmony_ci } 748e5c31af7Sopenharmony_ci "" 749e5c31af7Sopenharmony_ci end 750e5c31af7Sopenharmony_ci 751e5c31af7Sopenharmony_ci case use_variable_from_block_in_outer_scope 752e5c31af7Sopenharmony_ci version 100 es 753e5c31af7Sopenharmony_ci expect compile_fail 754e5c31af7Sopenharmony_ci both "" 755e5c31af7Sopenharmony_ci #version 100 756e5c31af7Sopenharmony_ci precision mediump float; 757e5c31af7Sopenharmony_ci ${DECLARATIONS} 758e5c31af7Sopenharmony_ci 759e5c31af7Sopenharmony_ci void main() 760e5c31af7Sopenharmony_ci { 761e5c31af7Sopenharmony_ci { 762e5c31af7Sopenharmony_ci float a = 1.0; 763e5c31af7Sopenharmony_ci } 764e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 765e5c31af7Sopenharmony_ci } 766e5c31af7Sopenharmony_ci "" 767e5c31af7Sopenharmony_ci end 768e5c31af7Sopenharmony_ci 769e5c31af7Sopenharmony_ci case use_variable_from_if_in_outer_scope 770e5c31af7Sopenharmony_ci version 100 es 771e5c31af7Sopenharmony_ci expect compile_fail 772e5c31af7Sopenharmony_ci both "" 773e5c31af7Sopenharmony_ci #version 100 774e5c31af7Sopenharmony_ci precision mediump float; 775e5c31af7Sopenharmony_ci ${DECLARATIONS} 776e5c31af7Sopenharmony_ci 777e5c31af7Sopenharmony_ci void main() 778e5c31af7Sopenharmony_ci { 779e5c31af7Sopenharmony_ci if (true) 780e5c31af7Sopenharmony_ci float a = 1.0; 781e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 782e5c31af7Sopenharmony_ci } 783e5c31af7Sopenharmony_ci "" 784e5c31af7Sopenharmony_ci end 785e5c31af7Sopenharmony_ci 786e5c31af7Sopenharmony_ci case use_variable_from_else_in_outer_scope 787e5c31af7Sopenharmony_ci version 100 es 788e5c31af7Sopenharmony_ci expect compile_fail 789e5c31af7Sopenharmony_ci both "" 790e5c31af7Sopenharmony_ci #version 100 791e5c31af7Sopenharmony_ci precision mediump float; 792e5c31af7Sopenharmony_ci ${DECLARATIONS} 793e5c31af7Sopenharmony_ci 794e5c31af7Sopenharmony_ci void main() 795e5c31af7Sopenharmony_ci { 796e5c31af7Sopenharmony_ci if (false) 797e5c31af7Sopenharmony_ci float a = 1.0; 798e5c31af7Sopenharmony_ci else 799e5c31af7Sopenharmony_ci float b = 2.0; 800e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(b); 801e5c31af7Sopenharmony_ci } 802e5c31af7Sopenharmony_ci "" 803e5c31af7Sopenharmony_ci end 804e5c31af7Sopenharmony_ci 805e5c31af7Sopenharmony_ci case use_variable_from_if_in_else 806e5c31af7Sopenharmony_ci version 100 es 807e5c31af7Sopenharmony_ci expect compile_fail 808e5c31af7Sopenharmony_ci both "" 809e5c31af7Sopenharmony_ci #version 100 810e5c31af7Sopenharmony_ci precision mediump float; 811e5c31af7Sopenharmony_ci ${DECLARATIONS} 812e5c31af7Sopenharmony_ci 813e5c31af7Sopenharmony_ci void main() 814e5c31af7Sopenharmony_ci { 815e5c31af7Sopenharmony_ci float a = 1.0; 816e5c31af7Sopenharmony_ci if (true) 817e5c31af7Sopenharmony_ci { 818e5c31af7Sopenharmony_ci float b = 2.0; 819e5c31af7Sopenharmony_ci } 820e5c31af7Sopenharmony_ci else 821e5c31af7Sopenharmony_ci { 822e5c31af7Sopenharmony_ci a = b; 823e5c31af7Sopenharmony_ci } 824e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 825e5c31af7Sopenharmony_ci } 826e5c31af7Sopenharmony_ci "" 827e5c31af7Sopenharmony_ci end 828e5c31af7Sopenharmony_ci 829e5c31af7Sopenharmony_ci case use_variable_from_for_init_statement_in_outer_scope 830e5c31af7Sopenharmony_ci version 100 es 831e5c31af7Sopenharmony_ci expect compile_fail 832e5c31af7Sopenharmony_ci both "" 833e5c31af7Sopenharmony_ci #version 100 834e5c31af7Sopenharmony_ci precision mediump float; 835e5c31af7Sopenharmony_ci ${DECLARATIONS} 836e5c31af7Sopenharmony_ci 837e5c31af7Sopenharmony_ci void main() 838e5c31af7Sopenharmony_ci { 839e5c31af7Sopenharmony_ci float x = 0.0; 840e5c31af7Sopenharmony_ci for (int i = 0; i < 10; i++) 841e5c31af7Sopenharmony_ci { 842e5c31af7Sopenharmony_ci x += sin(i); 843e5c31af7Sopenharmony_ci } 844e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(float(i)); 845e5c31af7Sopenharmony_ci } 846e5c31af7Sopenharmony_ci "" 847e5c31af7Sopenharmony_ci end 848e5c31af7Sopenharmony_ci 849e5c31af7Sopenharmony_ci case use_variable_from_while_condition_in_outer_scope 850e5c31af7Sopenharmony_ci version 100 es 851e5c31af7Sopenharmony_ci expect compile_fail 852e5c31af7Sopenharmony_ci both "" 853e5c31af7Sopenharmony_ci #version 100 854e5c31af7Sopenharmony_ci precision mediump float; 855e5c31af7Sopenharmony_ci ${DECLARATIONS} 856e5c31af7Sopenharmony_ci 857e5c31af7Sopenharmony_ci void main() 858e5c31af7Sopenharmony_ci { 859e5c31af7Sopenharmony_ci int a = 1; 860e5c31af7Sopenharmony_ci while (bool b = (a == 1)) 861e5c31af7Sopenharmony_ci { 862e5c31af7Sopenharmony_ci a++; 863e5c31af7Sopenharmony_ci } 864e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(float(b)); 865e5c31af7Sopenharmony_ci } 866e5c31af7Sopenharmony_ci "" 867e5c31af7Sopenharmony_ci end 868e5c31af7Sopenharmony_ci 869e5c31af7Sopenharmony_ci case use_parameter_names_from_function_declaration 870e5c31af7Sopenharmony_ci version 100 es 871e5c31af7Sopenharmony_ci expect compile_fail 872e5c31af7Sopenharmony_ci both "" 873e5c31af7Sopenharmony_ci #version 100 874e5c31af7Sopenharmony_ci precision mediump float; 875e5c31af7Sopenharmony_ci ${DECLARATIONS} 876e5c31af7Sopenharmony_ci 877e5c31af7Sopenharmony_ci float func(float a, float b); 878e5c31af7Sopenharmony_ci 879e5c31af7Sopenharmony_ci float func(float x, float y) { return a+b; } 880e5c31af7Sopenharmony_ci 881e5c31af7Sopenharmony_ci void main() 882e5c31af7Sopenharmony_ci { 883e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(func(1.0, 2.0)); 884e5c31af7Sopenharmony_ci } 885e5c31af7Sopenharmony_ci "" 886e5c31af7Sopenharmony_ci end 887e5c31af7Sopenharmony_ci 888e5c31af7Sopenharmony_ci case variable_not_visible_in_own_initializer 889e5c31af7Sopenharmony_ci version 100 es 890e5c31af7Sopenharmony_ci expect compile_fail 891e5c31af7Sopenharmony_ci both "" 892e5c31af7Sopenharmony_ci #version 100 893e5c31af7Sopenharmony_ci precision mediump float; 894e5c31af7Sopenharmony_ci ${DECLARATIONS} 895e5c31af7Sopenharmony_ci 896e5c31af7Sopenharmony_ci void main() 897e5c31af7Sopenharmony_ci { 898e5c31af7Sopenharmony_ci float x = x; 899e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(x); 900e5c31af7Sopenharmony_ci } 901e5c31af7Sopenharmony_ci "" 902e5c31af7Sopenharmony_ci end 903e5c31af7Sopenharmony_ci 904e5c31af7Sopenharmony_ciend # invalid 905