From 7248995b608cdf62362c1b95550edc0bdd15babe Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Mon, 11 Aug 2025 17:30:02 -0700 Subject: [PATCH] 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 --- .../compile/internal/ssa/_gen/generic.rules | 2 +- .../compile/internal/ssa/rewritegeneric.go | 4 +-- test/fixedbugs/issue74908.go | 25 ------------------- 3 files changed, 3 insertions(+), 28 deletions(-) delete mode 100644 test/fixedbugs/issue74908.go 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, - }, - } - -} -- 2.51.0