From a53589662719d0186e3ce3b965c082b829d0ce4c Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Wed, 21 Jan 2026 15:20:27 +0700 Subject: [PATCH] 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 --- src/cmd/compile/internal/bloop/bloop.go | 6 ------ 1 file changed, 6 deletions(-) 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 -- 2.52.0