mirror of
https://github.com/golang/go
synced 2024-11-02 11:50:30 +00:00
cmd/compile: fix wrong check for b.Controls in isBlockMultiValueExit
b.Controls has type [2]*Value, thus len(b.Controls) > 0 is always true. The right check should be b.Controls[0] != nil, though, this is also always true, since when we always set control value for BlockRet and BlockRetJmp when state.exit is called. Though checkFunc also checks for nil control value of ret/retjmp, but it happens later after expand_calls pass, so better to be defensive here, just in case. Change-Id: Ie4a292a3494dfbf5e6d872cde498703023b84d00 Reviewed-on: https://go-review.googlesource.com/c/go/+/345433 Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com> Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
parent
d7a43e8912
commit
5afa555428
1 changed files with 1 additions and 1 deletions
|
@ -24,7 +24,7 @@ type selKey struct {
|
|||
type Abi1RO uint8 // An offset within a parameter's slice of register indices, for abi1.
|
||||
|
||||
func isBlockMultiValueExit(b *Block) bool {
|
||||
return (b.Kind == BlockRet || b.Kind == BlockRetJmp) && len(b.Controls) > 0 && b.Controls[0].Op == OpMakeResult
|
||||
return (b.Kind == BlockRet || b.Kind == BlockRetJmp) && b.Controls[0] != nil && b.Controls[0].Op == OpMakeResult
|
||||
}
|
||||
|
||||
func badVal(s string, v *Value) error {
|
||||
|
|
Loading…
Reference in a new issue