]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/compile: fix miscompilation during inlining
authorMatthew Dempsky <mdempsky@google.com>
Wed, 18 Nov 2020 20:50:46 +0000 (12:50 -0800)
committerMatthew Dempsky <mdempsky@google.com>
Wed, 18 Nov 2020 22:24:21 +0000 (22:24 +0000)
commit35693d037f9d1c30d6de1fafd08e8c923a415ab8
treeab31491d20f27d2f130f5c405c661a805f393c26
parent5b0ec1a6ac0e644c89940e0fe5f79863ad2eafaa
cmd/compile: fix miscompilation during inlining

When inlining a function call expression, it's possible that the
function callee subexpression has side effects that need to be
preserved. This used to not be an issue, because inlining wouldn't
recognize these as inlinable anyway. But golang.org/cl/266199 extended
the inlining logic to recognize more cases, but did not notice that
the actual inlining code was discarding side effects.

Issue identified by danscales@.

Fixes #42703.

Change-Id: I95f8fc076b6ca4e9362e80ec26dad9d87a5bc44a
Reviewed-on: https://go-review.googlesource.com/c/go/+/271219
Reviewed-by: Dan Scales <danscales@google.com>
Trust: Dan Scales <danscales@google.com>
Trust: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/gc/inl.go
test/fixedbugs/issue42703.go [new file with mode: 0644]