]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/compile: fix select statement evaluation order corner case
authorMatthew Dempsky <mdempsky@google.com>
Thu, 10 Dec 2020 20:21:45 +0000 (12:21 -0800)
committerMatthew Dempsky <mdempsky@google.com>
Fri, 11 Dec 2020 22:02:02 +0000 (22:02 +0000)
commit14305527f686ced0de8d08b3a62bd96fe6359481
treeaa9684ae8b3a408e67e25c44e56f9d48e3d79fd6
parent1341a3decd00d1106efaa73c5ff4ffcabc4e6afd
cmd/compile: fix select statement evaluation order corner case

The Go spec requires that select case clauses be evaluated in order,
which is stricter than normal ordering semantics. cmd/compile handled
this correctly for send clauses, but was not correctly handling
receive clauses that involved bare variable references.

Discovered with @cuonglm.

Fixes #43111.

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