1e5c31af7Sopenharmony_cigroup if "If Statements" 2e5c31af7Sopenharmony_ci 3e5c31af7Sopenharmony_ci case single_statement 4e5c31af7Sopenharmony_ci values 5e5c31af7Sopenharmony_ci { 6e5c31af7Sopenharmony_ci input float in0 = [ 0.0 | 1.0 | 2.0 ]; 7e5c31af7Sopenharmony_ci output float out0 = [ 0.0 | 1.0 | 1.0 ]; 8e5c31af7Sopenharmony_ci } 9e5c31af7Sopenharmony_ci 10e5c31af7Sopenharmony_ci both "" 11e5c31af7Sopenharmony_ci precision mediump float; 12e5c31af7Sopenharmony_ci ${DECLARATIONS} 13e5c31af7Sopenharmony_ci void main() 14e5c31af7Sopenharmony_ci { 15e5c31af7Sopenharmony_ci out0 = 0.0; 16e5c31af7Sopenharmony_ci if (in0 >= 1.0) 17e5c31af7Sopenharmony_ci out0 = 1.0; 18e5c31af7Sopenharmony_ci ${OUTPUT} 19e5c31af7Sopenharmony_ci } 20e5c31af7Sopenharmony_ci "" 21e5c31af7Sopenharmony_ci end 22e5c31af7Sopenharmony_ci 23e5c31af7Sopenharmony_ci case compound_statement 24e5c31af7Sopenharmony_ci values 25e5c31af7Sopenharmony_ci { 26e5c31af7Sopenharmony_ci input float in0 = [ 0.0 | 1.0 | 2.0 ]; 27e5c31af7Sopenharmony_ci output float out0 = [ 0.0 | 1.0 | 1.0 ]; 28e5c31af7Sopenharmony_ci output float out1 = [ 1.0 | 0.0 | 0.0 ]; 29e5c31af7Sopenharmony_ci } 30e5c31af7Sopenharmony_ci 31e5c31af7Sopenharmony_ci both "" 32e5c31af7Sopenharmony_ci precision mediump float; 33e5c31af7Sopenharmony_ci ${DECLARATIONS} 34e5c31af7Sopenharmony_ci void main() 35e5c31af7Sopenharmony_ci { 36e5c31af7Sopenharmony_ci out0 = 0.0; 37e5c31af7Sopenharmony_ci out1 = 1.0; 38e5c31af7Sopenharmony_ci if (in0 >= 1.0) 39e5c31af7Sopenharmony_ci { 40e5c31af7Sopenharmony_ci out0 = 1.0; 41e5c31af7Sopenharmony_ci out1 = 0.0; 42e5c31af7Sopenharmony_ci } 43e5c31af7Sopenharmony_ci ${OUTPUT} 44e5c31af7Sopenharmony_ci } 45e5c31af7Sopenharmony_ci "" 46e5c31af7Sopenharmony_ci end 47e5c31af7Sopenharmony_ci 48e5c31af7Sopenharmony_ci case sequence_statements 49e5c31af7Sopenharmony_ci values 50e5c31af7Sopenharmony_ci { 51e5c31af7Sopenharmony_ci input float in0 = [ 0.0 | 1.0 | 2.0 ]; 52e5c31af7Sopenharmony_ci output float out0 = [ 0.0 | 1.0 | 1.0 ]; 53e5c31af7Sopenharmony_ci output float out1 = [ 1.0 | 0.0 | 0.0 ]; 54e5c31af7Sopenharmony_ci } 55e5c31af7Sopenharmony_ci 56e5c31af7Sopenharmony_ci both "" 57e5c31af7Sopenharmony_ci precision mediump float; 58e5c31af7Sopenharmony_ci ${DECLARATIONS} 59e5c31af7Sopenharmony_ci void main() 60e5c31af7Sopenharmony_ci { 61e5c31af7Sopenharmony_ci out0 = 0.0; 62e5c31af7Sopenharmony_ci out1 = 1.0; 63e5c31af7Sopenharmony_ci if (in0 >= 1.0) 64e5c31af7Sopenharmony_ci out0 = 1.0, out1 = 0.0; 65e5c31af7Sopenharmony_ci ${OUTPUT} 66e5c31af7Sopenharmony_ci } 67e5c31af7Sopenharmony_ci "" 68e5c31af7Sopenharmony_ci end 69e5c31af7Sopenharmony_ci 70e5c31af7Sopenharmony_ci case sequence_condition 71e5c31af7Sopenharmony_ci values 72e5c31af7Sopenharmony_ci { 73e5c31af7Sopenharmony_ci input float in0 = [ 0.0 | 1.0 | 2.0 ]; 74e5c31af7Sopenharmony_ci output float out0 = [ 0.0 | 1.0 | 1.0 ]; 75e5c31af7Sopenharmony_ci output float out1 = [ 1.0 | 0.0 | 0.0 ]; 76e5c31af7Sopenharmony_ci } 77e5c31af7Sopenharmony_ci 78e5c31af7Sopenharmony_ci both "" 79e5c31af7Sopenharmony_ci precision mediump float; 80e5c31af7Sopenharmony_ci ${DECLARATIONS} 81e5c31af7Sopenharmony_ci void main() 82e5c31af7Sopenharmony_ci { 83e5c31af7Sopenharmony_ci out0 = 0.0; 84e5c31af7Sopenharmony_ci out1 = 1.0; 85e5c31af7Sopenharmony_ci if (false, in0 >= 1.0) 86e5c31af7Sopenharmony_ci out0 = 1.0, out1 = 0.0; 87e5c31af7Sopenharmony_ci ${OUTPUT} 88e5c31af7Sopenharmony_ci } 89e5c31af7Sopenharmony_ci "" 90e5c31af7Sopenharmony_ci end 91e5c31af7Sopenharmony_ci 92e5c31af7Sopenharmony_ci case complex_condition 93e5c31af7Sopenharmony_ci values 94e5c31af7Sopenharmony_ci { 95e5c31af7Sopenharmony_ci input float in0 = [ 0.0 | 1.0 | 2.0 ]; 96e5c31af7Sopenharmony_ci output float out0 = [ 0.0 | 1.0 | 1.0 ]; 97e5c31af7Sopenharmony_ci output float out1 = [ 1.0 | 0.0 | 0.0 ]; 98e5c31af7Sopenharmony_ci } 99e5c31af7Sopenharmony_ci 100e5c31af7Sopenharmony_ci both "" 101e5c31af7Sopenharmony_ci precision mediump float; 102e5c31af7Sopenharmony_ci ${DECLARATIONS} 103e5c31af7Sopenharmony_ci void main() 104e5c31af7Sopenharmony_ci { 105e5c31af7Sopenharmony_ci out0 = 0.0; 106e5c31af7Sopenharmony_ci out1 = 1.0; 107e5c31af7Sopenharmony_ci if (false || (in0 >= 1.0) && (in0 - 2.0*in0 < 0.0)) 108e5c31af7Sopenharmony_ci out0 = 1.0, out1 = 0.0; 109e5c31af7Sopenharmony_ci ${OUTPUT} 110e5c31af7Sopenharmony_ci } 111e5c31af7Sopenharmony_ci "" 112e5c31af7Sopenharmony_ci end 113e5c31af7Sopenharmony_ci 114e5c31af7Sopenharmony_ci case if_else 115e5c31af7Sopenharmony_ci values 116e5c31af7Sopenharmony_ci { 117e5c31af7Sopenharmony_ci input float in0 = [ 0.0 | 1.0 | 2.0 ]; 118e5c31af7Sopenharmony_ci output float out0 = [ 0.0 | 1.0 | 1.0 ]; 119e5c31af7Sopenharmony_ci } 120e5c31af7Sopenharmony_ci 121e5c31af7Sopenharmony_ci both "" 122e5c31af7Sopenharmony_ci precision mediump float; 123e5c31af7Sopenharmony_ci ${DECLARATIONS} 124e5c31af7Sopenharmony_ci void main() 125e5c31af7Sopenharmony_ci { 126e5c31af7Sopenharmony_ci if (in0 >= 1.0) 127e5c31af7Sopenharmony_ci out0 = 1.0; 128e5c31af7Sopenharmony_ci else 129e5c31af7Sopenharmony_ci out0 = 0.0; 130e5c31af7Sopenharmony_ci ${OUTPUT} 131e5c31af7Sopenharmony_ci } 132e5c31af7Sopenharmony_ci "" 133e5c31af7Sopenharmony_ci end 134e5c31af7Sopenharmony_ci 135e5c31af7Sopenharmony_ci case if_elseif 136e5c31af7Sopenharmony_ci values 137e5c31af7Sopenharmony_ci { 138e5c31af7Sopenharmony_ci input float in0 = [ 0.0 | 1.0 | 2.0 ]; 139e5c31af7Sopenharmony_ci output float out0 = [ 0.0 | 1.0 | 2.0 ]; 140e5c31af7Sopenharmony_ci } 141e5c31af7Sopenharmony_ci 142e5c31af7Sopenharmony_ci both "" 143e5c31af7Sopenharmony_ci precision mediump float; 144e5c31af7Sopenharmony_ci ${DECLARATIONS} 145e5c31af7Sopenharmony_ci void main() 146e5c31af7Sopenharmony_ci { 147e5c31af7Sopenharmony_ci out0 = 0.0; 148e5c31af7Sopenharmony_ci if (in0 >= 2.0) 149e5c31af7Sopenharmony_ci out0 = 2.0; 150e5c31af7Sopenharmony_ci else if (in0 >= 1.0) 151e5c31af7Sopenharmony_ci out0 = 1.0; 152e5c31af7Sopenharmony_ci ${OUTPUT} 153e5c31af7Sopenharmony_ci } 154e5c31af7Sopenharmony_ci "" 155e5c31af7Sopenharmony_ci end 156e5c31af7Sopenharmony_ci 157e5c31af7Sopenharmony_ci case if_elseif_else 158e5c31af7Sopenharmony_ci values 159e5c31af7Sopenharmony_ci { 160e5c31af7Sopenharmony_ci input float in0 = [ 0.0 | 1.0 | 2.0 ]; 161e5c31af7Sopenharmony_ci output float out0 = [ 0.0 | 1.0 | 2.0 ]; 162e5c31af7Sopenharmony_ci } 163e5c31af7Sopenharmony_ci 164e5c31af7Sopenharmony_ci both "" 165e5c31af7Sopenharmony_ci precision mediump float; 166e5c31af7Sopenharmony_ci ${DECLARATIONS} 167e5c31af7Sopenharmony_ci void main() 168e5c31af7Sopenharmony_ci { 169e5c31af7Sopenharmony_ci if (in0 >= 2.0) 170e5c31af7Sopenharmony_ci out0 = 2.0; 171e5c31af7Sopenharmony_ci else if (in0 >= 1.0) 172e5c31af7Sopenharmony_ci out0 = 1.0; 173e5c31af7Sopenharmony_ci else 174e5c31af7Sopenharmony_ci out0 = 0.0; 175e5c31af7Sopenharmony_ci ${OUTPUT} 176e5c31af7Sopenharmony_ci } 177e5c31af7Sopenharmony_ci "" 178e5c31af7Sopenharmony_ci end 179e5c31af7Sopenharmony_ci 180e5c31af7Sopenharmony_ci case mixed_if_elseif_else 181e5c31af7Sopenharmony_ci values 182e5c31af7Sopenharmony_ci { 183e5c31af7Sopenharmony_ci input float in0 = [ 0.0 | 1.0 | 2.0 ]; 184e5c31af7Sopenharmony_ci output float out0 = [ 0.0 | 1.0 | 2.0 ]; 185e5c31af7Sopenharmony_ci } 186e5c31af7Sopenharmony_ci 187e5c31af7Sopenharmony_ci both "" 188e5c31af7Sopenharmony_ci precision mediump float; 189e5c31af7Sopenharmony_ci ${DECLARATIONS} 190e5c31af7Sopenharmony_ci void main() 191e5c31af7Sopenharmony_ci { 192e5c31af7Sopenharmony_ci if (in0 >= 2.0) 193e5c31af7Sopenharmony_ci { 194e5c31af7Sopenharmony_ci out0 = 2.0; 195e5c31af7Sopenharmony_ci } 196e5c31af7Sopenharmony_ci else if (in0 >= 1.0) 197e5c31af7Sopenharmony_ci out0 = 2.0, out0 = 1.0; 198e5c31af7Sopenharmony_ci else 199e5c31af7Sopenharmony_ci out0 = 0.0; 200e5c31af7Sopenharmony_ci ${OUTPUT} 201e5c31af7Sopenharmony_ci } 202e5c31af7Sopenharmony_ci "" 203e5c31af7Sopenharmony_ci end 204e5c31af7Sopenharmony_ci 205e5c31af7Sopenharmony_ci case constant_conditional_assignment_to_matrix 206e5c31af7Sopenharmony_ci vertex "" 207e5c31af7Sopenharmony_ci // This variant doesn't provoke the crash seen in the versions below. 208e5c31af7Sopenharmony_ci ${VERTEX_DECLARATIONS} 209e5c31af7Sopenharmony_ci varying mediump float FragVarying; 210e5c31af7Sopenharmony_ci const float in0 = 0.0; 211e5c31af7Sopenharmony_ci void main() 212e5c31af7Sopenharmony_ci { 213e5c31af7Sopenharmony_ci mat2 projectionMatrix = mat2(0.0, 0.0, 0.0, 0.0); 214e5c31af7Sopenharmony_ci if (in0 == 1.0) 215e5c31af7Sopenharmony_ci { 216e5c31af7Sopenharmony_ci projectionMatrix[0][0] = 1.0; 217e5c31af7Sopenharmony_ci } 218e5c31af7Sopenharmony_ci 219e5c31af7Sopenharmony_ci FragVarying = 1.0; 220e5c31af7Sopenharmony_ci gl_Position = dEQP_Position + vec4(projectionMatrix[1][0], 0.0, 0.0, 0.0); 221e5c31af7Sopenharmony_ci } 222e5c31af7Sopenharmony_ci "" 223e5c31af7Sopenharmony_ci fragment "" 224e5c31af7Sopenharmony_ci precision mediump float; 225e5c31af7Sopenharmony_ci varying float FragVarying; 226e5c31af7Sopenharmony_ci void main() 227e5c31af7Sopenharmony_ci { 228e5c31af7Sopenharmony_ci gl_FragColor = vec4(FragVarying, 1.0, 1.0, 1.0); 229e5c31af7Sopenharmony_ci } 230e5c31af7Sopenharmony_ci "" 231e5c31af7Sopenharmony_ci end 232e5c31af7Sopenharmony_ci 233e5c31af7Sopenharmony_ci case input_conditional_assignment_to_matrix 234e5c31af7Sopenharmony_ci values 235e5c31af7Sopenharmony_ci { 236e5c31af7Sopenharmony_ci input float in0 = [ 0.0 ]; 237e5c31af7Sopenharmony_ci } 238e5c31af7Sopenharmony_ci vertex "" 239e5c31af7Sopenharmony_ci ${VERTEX_DECLARATIONS} 240e5c31af7Sopenharmony_ci varying mediump float FragVarying; // Necessary to reproduce. 241e5c31af7Sopenharmony_ci void main() 242e5c31af7Sopenharmony_ci { 243e5c31af7Sopenharmony_ci // Crashes with mat4 as well. Does not crash with vectors. 244e5c31af7Sopenharmony_ci mat2 projectionMatrix = mat2(0.0, 0.0, 0.0, 0.0); 245e5c31af7Sopenharmony_ci // Testing a non-constant variable is necessary. 246e5c31af7Sopenharmony_ci if (in0 == 1.0) 247e5c31af7Sopenharmony_ci { 248e5c31af7Sopenharmony_ci // Using the matrix variable appears necessary. 249e5c31af7Sopenharmony_ci projectionMatrix[0][0] = 1.0; 250e5c31af7Sopenharmony_ci } 251e5c31af7Sopenharmony_ci 252e5c31af7Sopenharmony_ci FragVarying = 1.0; 253e5c31af7Sopenharmony_ci // Referencing the matrix is necessary though clearly the compiler 254e5c31af7Sopenharmony_ci // doesn't realize the assignment is useless. 255e5c31af7Sopenharmony_ci gl_Position = dEQP_Position + vec4(projectionMatrix[1][0], 0.0, 0.0, 0.0); 256e5c31af7Sopenharmony_ci } 257e5c31af7Sopenharmony_ci "" 258e5c31af7Sopenharmony_ci fragment "" 259e5c31af7Sopenharmony_ci precision mediump float; 260e5c31af7Sopenharmony_ci varying float FragVarying; 261e5c31af7Sopenharmony_ci void main() 262e5c31af7Sopenharmony_ci { 263e5c31af7Sopenharmony_ci gl_FragColor = vec4(FragVarying, 1.0, 1.0, 1.0); 264e5c31af7Sopenharmony_ci } 265e5c31af7Sopenharmony_ci "" 266e5c31af7Sopenharmony_ci end 267e5c31af7Sopenharmony_ci 268e5c31af7Sopenharmony_ci case uniform_conditional_assignment_to_matrix 269e5c31af7Sopenharmony_ci values 270e5c31af7Sopenharmony_ci { 271e5c31af7Sopenharmony_ci uniform float uni0 = [ 0.0 ]; 272e5c31af7Sopenharmony_ci } 273e5c31af7Sopenharmony_ci vertex "" 274e5c31af7Sopenharmony_ci ${VERTEX_DECLARATIONS} 275e5c31af7Sopenharmony_ci varying mediump float FragVarying; // Necessary to reproduce. 276e5c31af7Sopenharmony_ci void main() 277e5c31af7Sopenharmony_ci { 278e5c31af7Sopenharmony_ci // Crashes with mat4 as well. Does not crash with vectors. 279e5c31af7Sopenharmony_ci mat2 projectionMatrix = mat2(0.0, 0.0, 0.0, 0.0); 280e5c31af7Sopenharmony_ci // Testing a non-constant variable is necessary. 281e5c31af7Sopenharmony_ci if (uni0 == 1.0) 282e5c31af7Sopenharmony_ci { 283e5c31af7Sopenharmony_ci // Using the matrix variable appears necessary. 284e5c31af7Sopenharmony_ci projectionMatrix[0][0] = 1.0; 285e5c31af7Sopenharmony_ci } 286e5c31af7Sopenharmony_ci 287e5c31af7Sopenharmony_ci FragVarying = 1.0; 288e5c31af7Sopenharmony_ci // Referencing the matrix is necessary though clearly the compiler 289e5c31af7Sopenharmony_ci // doesn't realize the assignment is useless. 290e5c31af7Sopenharmony_ci gl_Position = dEQP_Position + vec4(projectionMatrix[1][0], 0.0, 0.0, 0.0); 291e5c31af7Sopenharmony_ci } 292e5c31af7Sopenharmony_ci "" 293e5c31af7Sopenharmony_ci fragment "" 294e5c31af7Sopenharmony_ci precision mediump float; 295e5c31af7Sopenharmony_ci varying float FragVarying; 296e5c31af7Sopenharmony_ci void main() 297e5c31af7Sopenharmony_ci { 298e5c31af7Sopenharmony_ci gl_FragColor = vec4(FragVarying, 1.0, 1.0, 1.0); 299e5c31af7Sopenharmony_ci } 300e5c31af7Sopenharmony_ci "" 301e5c31af7Sopenharmony_ci end 302e5c31af7Sopenharmony_ci 303e5c31af7Sopenharmony_ciend # if 304e5c31af7Sopenharmony_ci 305e5c31af7Sopenharmony_cigroup invalid_if "Invalid If Conditionals" 306e5c31af7Sopenharmony_ci 307e5c31af7Sopenharmony_ci case missing_parenthesis 308e5c31af7Sopenharmony_ci expect compile_fail 309e5c31af7Sopenharmony_ci both "" 310e5c31af7Sopenharmony_ci precision mediump float; 311e5c31af7Sopenharmony_ci void main() 312e5c31af7Sopenharmony_ci { 313e5c31af7Sopenharmony_ci if true 314e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(1.0); 315e5c31af7Sopenharmony_ci } 316e5c31af7Sopenharmony_ci "" 317e5c31af7Sopenharmony_ci end 318e5c31af7Sopenharmony_ci 319e5c31af7Sopenharmony_ci case unclosed_parenthesis 320e5c31af7Sopenharmony_ci expect compile_fail 321e5c31af7Sopenharmony_ci both "" 322e5c31af7Sopenharmony_ci precision mediump float; 323e5c31af7Sopenharmony_ci void main() 324e5c31af7Sopenharmony_ci { 325e5c31af7Sopenharmony_ci if (true 326e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(1.0); 327e5c31af7Sopenharmony_ci } 328e5c31af7Sopenharmony_ci "" 329e5c31af7Sopenharmony_ci end 330e5c31af7Sopenharmony_ci 331e5c31af7Sopenharmony_ci case int_condition 332e5c31af7Sopenharmony_ci expect compile_fail 333e5c31af7Sopenharmony_ci both "" 334e5c31af7Sopenharmony_ci precision mediump float; 335e5c31af7Sopenharmony_ci void main() 336e5c31af7Sopenharmony_ci { 337e5c31af7Sopenharmony_ci if (5) 338e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(1.0); 339e5c31af7Sopenharmony_ci } 340e5c31af7Sopenharmony_ci "" 341e5c31af7Sopenharmony_ci end 342e5c31af7Sopenharmony_ci 343e5c31af7Sopenharmony_ci case int_zero_condition 344e5c31af7Sopenharmony_ci expect compile_fail 345e5c31af7Sopenharmony_ci both "" 346e5c31af7Sopenharmony_ci precision mediump float; 347e5c31af7Sopenharmony_ci void main() 348e5c31af7Sopenharmony_ci { 349e5c31af7Sopenharmony_ci if (0) 350e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(1.0); 351e5c31af7Sopenharmony_ci } 352e5c31af7Sopenharmony_ci "" 353e5c31af7Sopenharmony_ci end 354e5c31af7Sopenharmony_ci 355e5c31af7Sopenharmony_ci case int_one_condition 356e5c31af7Sopenharmony_ci expect compile_fail 357e5c31af7Sopenharmony_ci both "" 358e5c31af7Sopenharmony_ci precision mediump float; 359e5c31af7Sopenharmony_ci void main() 360e5c31af7Sopenharmony_ci { 361e5c31af7Sopenharmony_ci if (1) 362e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(1.0); 363e5c31af7Sopenharmony_ci } 364e5c31af7Sopenharmony_ci "" 365e5c31af7Sopenharmony_ci end 366e5c31af7Sopenharmony_ci 367e5c31af7Sopenharmony_ci case int_uniform_condition 368e5c31af7Sopenharmony_ci expect compile_fail 369e5c31af7Sopenharmony_ci 370e5c31af7Sopenharmony_ci both "" 371e5c31af7Sopenharmony_ci precision mediump float; 372e5c31af7Sopenharmony_ci precision mediump int; 373e5c31af7Sopenharmony_ci uniform int u0; 374e5c31af7Sopenharmony_ci void main() 375e5c31af7Sopenharmony_ci { 376e5c31af7Sopenharmony_ci if (u0) 377e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(1.0); 378e5c31af7Sopenharmony_ci } 379e5c31af7Sopenharmony_ci "" 380e5c31af7Sopenharmony_ci end 381e5c31af7Sopenharmony_ci 382e5c31af7Sopenharmony_ci case float_condition 383e5c31af7Sopenharmony_ci expect compile_fail 384e5c31af7Sopenharmony_ci both "" 385e5c31af7Sopenharmony_ci precision mediump float; 386e5c31af7Sopenharmony_ci void main() 387e5c31af7Sopenharmony_ci { 388e5c31af7Sopenharmony_ci if (5.0) 389e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(1.0); 390e5c31af7Sopenharmony_ci } 391e5c31af7Sopenharmony_ci "" 392e5c31af7Sopenharmony_ci end 393e5c31af7Sopenharmony_ci 394e5c31af7Sopenharmony_ci case float_zero_condition 395e5c31af7Sopenharmony_ci expect compile_fail 396e5c31af7Sopenharmony_ci both "" 397e5c31af7Sopenharmony_ci precision mediump float; 398e5c31af7Sopenharmony_ci void main() 399e5c31af7Sopenharmony_ci { 400e5c31af7Sopenharmony_ci if (0.0) 401e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(1.0); 402e5c31af7Sopenharmony_ci } 403e5c31af7Sopenharmony_ci "" 404e5c31af7Sopenharmony_ci end 405e5c31af7Sopenharmony_ci 406e5c31af7Sopenharmony_ci case float_one_condition 407e5c31af7Sopenharmony_ci expect compile_fail 408e5c31af7Sopenharmony_ci both "" 409e5c31af7Sopenharmony_ci precision mediump float; 410e5c31af7Sopenharmony_ci void main() 411e5c31af7Sopenharmony_ci { 412e5c31af7Sopenharmony_ci if (1.0) 413e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(1.0); 414e5c31af7Sopenharmony_ci } 415e5c31af7Sopenharmony_ci "" 416e5c31af7Sopenharmony_ci end 417e5c31af7Sopenharmony_ci 418e5c31af7Sopenharmony_ci case sampler_condition 419e5c31af7Sopenharmony_ci expect compile_fail 420e5c31af7Sopenharmony_ci both "" 421e5c31af7Sopenharmony_ci precision mediump float; 422e5c31af7Sopenharmony_ci uniform sampler2D s0; 423e5c31af7Sopenharmony_ci void main() 424e5c31af7Sopenharmony_ci { 425e5c31af7Sopenharmony_ci if (s0) 426e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(1.0); 427e5c31af7Sopenharmony_ci } 428e5c31af7Sopenharmony_ci "" 429e5c31af7Sopenharmony_ci end 430e5c31af7Sopenharmony_ci 431e5c31af7Sopenharmony_ciend # invalid_if 432