]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: fix order-of-assignment issue w/ defers
authorMatthew Dempsky <mdempsky@google.com>
Fri, 22 Jan 2021 03:27:12 +0000 (19:27 -0800)
committerMatthew Dempsky <mdempsky@google.com>
Mon, 25 Jan 2021 23:54:36 +0000 (23:54 +0000)
commitdeaf29a8a8ab76613bf0d5d97c4e31bfbdc4c4e9
treeeceb1c0bc805e7e82536d7ba77ad5b49dfd48031
parentad2ca26a521a5a642f51c3ef8e3004c9ce7af5aa
cmd/compile: fix order-of-assignment issue w/ defers

CL 261677 fixed a logic issue in walk's alias detection, where it was
checking the RHS expression instead of the LHS expression when trying
to determine the kind of assignment. However, correcting this exposed
a latent issue with assigning to result parameters in functions with
defers, where an assignment could become visible earlier than intended
if a later expression could panic.

Fixes #43835.

Change-Id: I061ced125e3896e26d65f45b28c99db2c8a74a8c
Reviewed-on: https://go-review.googlesource.com/c/go/+/285633
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Keith Randall <khr@golang.org>
Trust: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/gc/walk.go
test/fixedbugs/issue43835.go [new file with mode: 0644]