diff options
| author | Oliver Eikemeier <eikemeier@fillmore-labs.com> | 2026-03-08 11:12:17 +0000 |
|---|---|---|
| committer | Keith Randall <khr@golang.org> | 2026-03-10 20:51:48 -0700 |
| commit | 45c6fb4b9bff9eaaaae000ff223452403b9def4e (patch) | |
| tree | c33c8b80625a3aee289168a9cbfb24aafa7815f1 /src/cmd | |
| parent | 59b188cee2cdf522b621d1ee72c811fcd46e22b2 (diff) | |
| download | go-45c6fb4b9bff9eaaaae000ff223452403b9def4e.tar.xz | |
cmd/compile: unwrap OCONVIFACE in staticinit for OAS2
Static initialization only expected OCONVNOP wrappings.
Unwrap OCONVIFACE too, since it occurs when multiple return values
of an OAS2FUNC are implicitly converted to an interface.
Fixes #78016
Change-Id: Ic3fd6151403aabfc087d3240c1fcfabe7108cc0e
GitHub-Last-Rev: 98976d9e64baa85f4f3181764308566aae991bbf
GitHub-Pull-Request: golang/go#78017
Reviewed-on: https://go-review.googlesource.com/c/go/+/752780
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Mark Freeman <markfreeman@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@google.com>
Diffstat (limited to 'src/cmd')
| -rw-r--r-- | src/cmd/compile/internal/staticinit/sched.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/staticinit/sched.go b/src/cmd/compile/internal/staticinit/sched.go index 5e04d0df04..62331392a5 100644 --- a/src/cmd/compile/internal/staticinit/sched.go +++ b/src/cmd/compile/internal/staticinit/sched.go @@ -114,7 +114,7 @@ func (s *Schedule) tryStaticInit(n ir.Node) bool { // "var a, b = f()" that needs type conversion, which is not static. n := n.(*ir.AssignListStmt) for _, rhs := range n.Rhs { - for rhs.Op() == ir.OCONVNOP { + for rhs.Op() == ir.OCONVNOP || rhs.Op() == ir.OCONVIFACE { rhs = rhs.(*ir.ConvExpr).X } if name, ok := rhs.(*ir.Name); !ok || !name.AutoTemp() { |
