From e0807ba470e6cfdc6dbc285a76216fab20cb0589 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 5 Nov 2025 20:32:38 -0800 Subject: [PATCH] cmd/compile: don't clear ptrmask in fillptrmask It is only ever called with a newly allocated slice. This clearing code dates back to the C version of the compiler, in which the function started like this: static void gengcmask(Type *t, uint8 gcmask[16]) { ... memset(gcmask, 0, 16); if(!haspointers(t)) return; That memset was required for C, but not for Go. Change-Id: I6fceb99b2dc8682685dca2e4289fcd58e2e5a0e0 Reviewed-on: https://go-review.googlesource.com/c/go/+/718340 LUCI-TryBot-Result: Go LUCI Reviewed-by: Keith Randall Auto-Submit: Ian Lance Taylor Reviewed-by: Keith Randall Reviewed-by: Junyang Shao --- src/cmd/compile/internal/reflectdata/reflect.go | 1 - 1 file changed, 1 deletion(-) diff --git a/src/cmd/compile/internal/reflectdata/reflect.go b/src/cmd/compile/internal/reflectdata/reflect.go index 38b9391c5f1..324007ea798 100644 --- a/src/cmd/compile/internal/reflectdata/reflect.go +++ b/src/cmd/compile/internal/reflectdata/reflect.go @@ -1282,7 +1282,6 @@ func dgcptrmask(t *types.Type, write bool) *obj.LSym { // word offsets in t that hold pointers. // ptrmask is assumed to fit at least types.PtrDataSize(t)/PtrSize bits. func fillptrmask(t *types.Type, ptrmask []byte) { - clear(ptrmask) if !t.HasPointers() { return }