From d168ad18e15c4e052260bb8c3446c90ab46fdde0 Mon Sep 17 00:00:00 2001 From: Jorropo Date: Sat, 28 Jun 2025 02:20:22 +0200 Subject: [PATCH] slices: update TestIssue68488 to avoid false positives Fixes #74387 Even tho we are abusing unsafe.SliceData a bit here it's probably fine; in case this test fail, it means some memory alias is happening which is not good for GC purposes. We don't care about false keep alives for stack locations tho. Change-Id: I9434bad8c6d9fbc39c738690617dc7cf91d82aef Reviewed-on: https://go-review.googlesource.com/c/go/+/684755 Reviewed-by: David Chase LUCI-TryBot-Result: Go LUCI Reviewed-by: Keith Randall Reviewed-by: Keith Randall Auto-Submit: Jorropo --- src/slices/slices_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/slices/slices_test.go b/src/slices/slices_test.go index edf7e7b610..19a3e9b0dd 100644 --- a/src/slices/slices_test.go +++ b/src/slices/slices_test.go @@ -1454,6 +1454,8 @@ func TestRepeatPanics(t *testing.T) { } } +var leak *int + func TestIssue68488(t *testing.T) { s := make([]int, 3) clone := Clone(s[1:1]) @@ -1461,6 +1463,7 @@ func TestIssue68488(t *testing.T) { case &s[0], &s[1], &s[2]: t.Error("clone keeps alive s due to array overlap") } + leak = &s[1] // see go.dev/issue/74387 } // This test asserts the behavior when the primary slice operand is nil. -- 2.51.0