From 6bead8f77afd2f7317eb011ca019b61ac3d90c17 Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Mon, 7 Nov 2022 14:54:52 +0000 Subject: [PATCH] sync/atomic: disallow type conversions of atomic.Pointer[T] Fixes #56603 Change-Id: I6af9d80201025ae4028bfaa4a62e5de9ac0c501d GitHub-Last-Rev: e6ed5e14512e1221a3c6cb181406cf00eec07e99 GitHub-Pull-Request: golang/go#56604 Reviewed-on: https://go-review.googlesource.com/c/go/+/448275 Reviewed-by: Michael Knyszek Run-TryBot: Ian Lance Taylor TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor --- src/sync/atomic/type.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/sync/atomic/type.go b/src/sync/atomic/type.go index 87c98b1e77..4d466232f1 100644 --- a/src/sync/atomic/type.go +++ b/src/sync/atomic/type.go @@ -41,6 +41,10 @@ var _ = &Pointer[int]{} // A Pointer is an atomic pointer of type *T. The zero value is a nil *T. type Pointer[T any] struct { + // Mention T in a field to disallow conversion between Pointer types. + // See go.dev/issue/56603 for more details. + _ [0]T + _ noCopy v unsafe.Pointer } -- 2.48.1