% Test what kinds of expressions are valid array dimensions.

[pixel shader todo]
float4 main() : sv_target
{
    const int dim = 4;
    float a[2 * 2] = {0.1, 0.2, 0.3, 0.4};
#ifdef __hlsl_dx_compiler
    /* float array dimensions are not valid. */
    float b[4] = a;
#else
    float b[4.1] = a;
#endif
    float c[dim] = b;
    float d[true] = {c[0]};
    float e[65536];
    return float4(d[0], c[0], c[1], c[3]);
}

[test]
todo(sm<6) draw quad
probe (0, 0) rgba (0.1, 0.1, 0.2, 0.4)


[pixel shader fail]
float4 fun() { return 0; };

float a[CompileShader(ps_2_0, main())];

float4 main() : sv_target { return 0; }