From 2de90fd48f2e4e38c2805e81b37d4116004752e2 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Fri, 20 Mar 2026 17:14:59 -0700 Subject: cmd/compile/internal/noder: don't shoot oneself (fix silly mistake) When reading multiple promoted fields in a struct literal from UIR, don't overwrite the (top-level) struct literal type needed for the next field. Fixes #78262. For #9859. Change-Id: Ifac64537bebcb7dbb79a6173d0cd032cbf0b8ed8 Reviewed-on: https://go-review.googlesource.com/c/go/+/757225 Reviewed-by: Robert Griesemer Auto-Submit: Robert Griesemer LUCI-TryBot-Result: Go LUCI Reviewed-by: Keith Randall --- src/cmd/compile/internal/noder/reader.go | 1 + 1 file changed, 1 insertion(+) (limited to 'src/cmd') diff --git a/src/cmd/compile/internal/noder/reader.go b/src/cmd/compile/internal/noder/reader.go index b30a2a3e86..65ee18ac46 100644 --- a/src/cmd/compile/internal/noder/reader.go +++ b/src/cmd/compile/internal/noder/reader.go @@ -3117,6 +3117,7 @@ func (r *reader) structElems(typ *types.Type, valuesOnly bool, elems []ir.Node) var fld *types.Field if n := r.Int(); n < 0 { // embedded field + typ := typ // don't modify the original typ for range -n { fld = typ.Field(r.Int()) typ = fld.Type -- cgit v1.3-5-g9baa