1617a3babSopenharmony_ci#version 120
2617a3babSopenharmony_ci
3617a3babSopenharmony_ciattribute vec3 v3;
4617a3babSopenharmony_ci
5617a3babSopenharmony_ciuniform mat3x2 m32;
6617a3babSopenharmony_ci
7617a3babSopenharmony_ciconst mat2x4 m24 = mat2x4(1.0, 2.0, 
8617a3babSopenharmony_ci                          3.0, 4.0,
9617a3babSopenharmony_ci                          3.0, 4.0,
10617a3babSopenharmony_ci                          3.0, 4.0, 5.0);          // ERROR, too many arguments
11617a3babSopenharmony_ci
12617a3babSopenharmony_civoid main()
13617a3babSopenharmony_ci{
14617a3babSopenharmony_ci    mat2x3 m23;
15617a3babSopenharmony_ci    vec3 a, b;
16617a3babSopenharmony_ci
17617a3babSopenharmony_ci    a = v3 * m23;      // ERROR, type mismatch
18617a3babSopenharmony_ci    b = m32 * v3;      // ERROR, type mismatch
19617a3babSopenharmony_ci    m23.xy;            // ERROR, can't use .
20617a3babSopenharmony_ci
21617a3babSopenharmony_ci    gl_Position = vec4(m23 * m32 * v3, m24[2][4]);  // ERROR, 2 and 4 are out of range
22617a3babSopenharmony_ci    m23 *= m23;        // ERROR, right side needs to be square
23617a3babSopenharmony_ci    m23 *= m32;        // ERROR, left columns must match right rows
24617a3babSopenharmony_ci}
25