mirror of
https://github.com/golang/go
synced 2024-11-02 13:42:29 +00:00
d21bdf125c
SSA can handle 1-element array, but only when the element type is SSAable. When building SSA for INDEX of 1-element array, we did not check the element type is SSAable. And when it's not, it resulted in an unhandled SSA op. Fixes #26120. Change-Id: Id709996b5d9d90212f6c56d3f27eed320a4d8360 Reviewed-on: https://go-review.googlesource.com/121496 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
23 lines
397 B
Go
23 lines
397 B
Go
// compile
|
|
|
|
// Copyright 2018 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Issue 26120: INDEX of 1-element but non-SSAable array
|
|
// is mishandled when building SSA.
|
|
|
|
package p
|
|
|
|
type T [1]struct {
|
|
f []int
|
|
i, j int
|
|
}
|
|
|
|
func F() {
|
|
var v T
|
|
f := func() T {
|
|
return v
|
|
}
|
|
_ = []int{}[f()[0].i]
|
|
}
|