blob: c2c59850d79234768da9019f0a04242321ddba03 [file] [log] [blame]
uniform half4 colorRed, colorGreen;
struct S {
int a, b, c;
};
void check_array_1(int[1]) {}
void check_array_2(int[2]) {}
void check_array_3(int[3]) {}
bool test() {
const S x = S(1, 2, 3);
const S xx = S(1, 2, 3);
const S y = S(1, 2, 4);
int a[x.a];
int b[x.b];
int c[x.c];
check_array_1(a);
check_array_2(b);
check_array_3(c);
// Structs with elements lacking side-effects can be optimized.
int two = 2;
int flatten0 = S(x.a, two, 3).a;
int flatten1 = S(x.a, two, 3).b;
int flatten2 = S(x.a, two, 3).c;
return (x == xx) && !(x != xx) && (x != y) && !(x == y) && (x.a == y.a) &&
(flatten0 == x.a) && (flatten1 == x.b) && (flatten2 == x.c);
}
half4 main(float2 coords) {
return test() ? colorGreen : colorRed;
}