From: Cuong Manh Le Date: Wed, 21 Jan 2026 08:20:27 +0000 (+0700) Subject: cmd/compile: remove unnecessary code in keepAliveAt X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a53589662719d0186e3ce3b965c082b829d0ce4c;p=gostls13.git cmd/compile: remove unnecessary code in keepAliveAt TypeWord and SrcRType are only needed for interface expression conversion. Since CL 725180, the kept alive nodes are passed directly to runtime.KeepAlive, so there's no interface conversion anymore. Change-Id: I37ad8016bf76a1bf8ba36efea043fc71341b33c7 Reviewed-on: https://go-review.googlesource.com/c/go/+/737840 Auto-Submit: Cuong Manh Le Reviewed-by: Keith Randall Reviewed-by: Keith Randall LUCI-TryBot-Result: Go LUCI Reviewed-by: Junyang Shao --- diff --git a/src/cmd/compile/internal/bloop/bloop.go b/src/cmd/compile/internal/bloop/bloop.go index f2111cf952..f65454871e 100644 --- a/src/cmd/compile/internal/bloop/bloop.go +++ b/src/cmd/compile/internal/bloop/bloop.go @@ -39,7 +39,6 @@ package bloop import ( "cmd/compile/internal/base" "cmd/compile/internal/ir" - "cmd/compile/internal/reflectdata" "cmd/compile/internal/typecheck" "cmd/compile/internal/types" "cmd/internal/src" @@ -117,11 +116,6 @@ func keepAliveAt(ns ir.Nodes, curNode ir.Node) ir.Node { base.FatalfAt(n.Pos(), "keepAliveAt: node %v is not addressable", n) } arg := ir.NewConvExpr(pos, ir.OCONV, types.Types[types.TUNSAFEPTR], typecheck.NodAddr(n)) - if !n.Type().IsInterface() { - srcRType0 := reflectdata.TypePtrAt(pos, n.Type()) - arg.TypeWord = srcRType0 - arg.SrcRType = srcRType0 - } callExpr := typecheck.Call(pos, typecheck.LookupRuntime("KeepAlive"), ir.Nodes{arg}, false).(*ir.CallExpr) callExpr.IsCompilerVarLive = true callExpr.NoInline = true