uniform half4 colorGreen, colorRed;

struct S {
    float a, b, c;
};

float sumStruct(S s) {
    float sum = s.a;
    sum += s.b;
    sum += s.c;
    return sum;
}

float sumStructMutating(S s) {
    s.a += s.b;
    s.a += s.c;
    return s.a;
}

half4 main(float2 coords) {
    S s = S(1, 2, 3);
    return sumStruct(s) == sumStructMutating(s) ? colorGreen : colorRed;
}
