aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
authorRobert Griesemer <gri@google.com>2026-03-20 17:14:59 -0700
committerGopher Robot <gobot@golang.org>2026-03-20 17:58:12 -0700
commit2de90fd48f2e4e38c2805e81b37d4116004752e2 (patch)
tree1d3419a8be23c0964d002a96c4fdf7442d6deb4b /src/cmd
parentbfa3dc402859a92f00b88ebab500d44c64e28185 (diff)
downloadgo-2de90fd48f2e4e38c2805e81b37d4116004752e2.tar.xz
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 <gri@google.com> Auto-Submit: Robert Griesemer <gri@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/noder/reader.go1
1 files changed, 1 insertions, 0 deletions
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