uniform half4 colorGreen; void original_fuzzer_output() { float y[8],z; z,y[3 .1L[y[7]=y[3],4]]+=0; } half4 main(float2 coords) { int x[1], y=0, z=0; // This line triggers two optimizations: // 1 - No-op arithmetic simplification removes the `+= 0` and changes the ref-kind of `x` from // "write" to "read". Crucially, the ref-kind of `y` must remain "write." // 2 - Comma-operator simplification detects that the leftmost `0, ` has no side effect and // eliminates it. This is done by returning a clone of the right-side expression. The act of // cloning the right-side expression can lead to an assertion if `y` has the wrong ref-kind. 0, x[y=z] += 0; return colorGreen; }