]> Cypherpunks repositories - gostls13.git/commitdiff
Revert "cmd/compile: allow more args in StructMake folding rule"
authorKeith Randall <khr@golang.org>
Tue, 12 Aug 2025 00:30:02 +0000 (17:30 -0700)
committerKeith Randall <khr@golang.org>
Tue, 12 Aug 2025 05:36:20 +0000 (22:36 -0700)
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 <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Keith Randall <khr@google.com>
src/cmd/compile/internal/ssa/_gen/generic.rules
src/cmd/compile/internal/ssa/rewritegeneric.go
test/fixedbugs/issue74908.go [deleted file]

index 793f0a4fb6f0341a41385c9035cc5bdd2d729d2e..8f354e977f9af2968c64e0b7cc9a1d71c2b8f1d8 100644 (file)
   @x.Block (Load <v.Type> (OffPtr <v.Type.PtrTo()> [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
index adc4984b6f0c34f8463d4e0ca41551f97e30665e..83be129a7bc49b66ca025d3ce95a95a9d4706e34 100644 (file)
@@ -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 (file)
index 66e26d3..0000000
+++ /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,
-               },
-       }
-
-}