-
Keith Randall authored
First the insidious bug: var n uintptr for n := elemPtrs; n > 120; n -= 120 { prog = append(prog, 120) prog = append(prog, mask[:15]...) mask = mask[15:] } prog = append(prog, byte(n)) prog = append(prog, mask[:(n+7)/8]...) The := breaks this code, because the n after the loop is always 0! We also do need to handle field padding correctly. In particular the old padding code doesn't correctly handle fields that are not a multiple of a pointer in size. Fixes #30606. Change-Id: Ifcab9494dc25c20116753c5d7e0145d6c2053ed8 Reviewed-on: https://go-review.googlesource.com/c/go/+/165860 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
9dc3b8b7