From: Keith Randall Date: Tue, 12 Aug 2025 00:30:02 +0000 (-0700) Subject: Revert "cmd/compile: allow more args in StructMake folding rule" X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7248995b608cdf62362c1b95550edc0bdd15babe;p=gostls13.git Revert "cmd/compile: allow more args in StructMake folding rule" This reverts commit 72e8237cc11569de2faf9885a1b83d06446533b5 (CL 693615) Reason for revert: still causing compiler failures on Google test code Change-Id: I4a7850c321d95ed7803d56866bb0c524c7a377d3 Reviewed-on: https://go-review.googlesource.com/c/go/+/695015 LUCI-TryBot-Result: Go LUCI Reviewed-by: Dmitri Shuralyov Reviewed-by: Keith Randall --- diff --git a/src/cmd/compile/internal/ssa/_gen/generic.rules b/src/cmd/compile/internal/ssa/_gen/generic.rules index 793f0a4fb6..8f354e977f 100644 --- a/src/cmd/compile/internal/ssa/_gen/generic.rules +++ b/src/cmd/compile/internal/ssa/_gen/generic.rules @@ -921,7 +921,7 @@ @x.Block (Load (OffPtr [t.FieldOff(int(i))] ptr) mem) // Putting struct{*byte} and similar into direct interfaces. -(IMake _typ (StructMake ___)) => imakeOfStructMake(v) +(IMake _typ (StructMake val)) => imakeOfStructMake(v) (StructSelect [_] (IData x)) => (IData x) // un-SSAable values use mem->mem copies diff --git a/src/cmd/compile/internal/ssa/rewritegeneric.go b/src/cmd/compile/internal/ssa/rewritegeneric.go index adc4984b6f..83be129a7b 100644 --- a/src/cmd/compile/internal/ssa/rewritegeneric.go +++ b/src/cmd/compile/internal/ssa/rewritegeneric.go @@ -11200,10 +11200,10 @@ func rewriteValuegeneric_OpFloor(v *Value) bool { func rewriteValuegeneric_OpIMake(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] - // match: (IMake _typ (StructMake ___)) + // match: (IMake _typ (StructMake val)) // result: imakeOfStructMake(v) for { - if v_1.Op != OpStructMake { + if v_1.Op != OpStructMake || len(v_1.Args) != 1 { break } v.copyOf(imakeOfStructMake(v)) diff --git a/test/fixedbugs/issue74908.go b/test/fixedbugs/issue74908.go deleted file mode 100644 index 66e26d32a1..0000000000 --- a/test/fixedbugs/issue74908.go +++ /dev/null @@ -1,25 +0,0 @@ -// compile - -// Copyright 2025 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. - -package main - -type Type struct { - any -} - -type typeObject struct { - e struct{} - b *byte -} - -func f(b *byte) Type { - return Type{ - typeObject{ - b: b, - }, - } - -}