From: Will Hawkins Date: Sat, 4 Jun 2022 07:44:18 +0000 (-0400) Subject: sync/atomic: clarify that 8-byte alignment of variables is due to escape X-Git-Tag: go1.19beta1~32 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=69bb7c6ef540caa422e5d7fd1127dd71e3ca90fe;p=gostls13.git sync/atomic: clarify that 8-byte alignment of variables is due to escape For #53223. Change-Id: I79e9b920488581a4d850e4051ee0dd600b5bbcb1 Reviewed-on: https://go-review.googlesource.com/c/go/+/410102 Reviewed-by: Michael Pratt Reviewed-by: Austin Clements --- diff --git a/src/sync/atomic/doc.go b/src/sync/atomic/doc.go index 4d426826da..7977d13168 100644 --- a/src/sync/atomic/doc.go +++ b/src/sync/atomic/doc.go @@ -57,8 +57,9 @@ import ( // On ARM, 386, and 32-bit MIPS, it is the caller's responsibility to arrange // for 64-bit alignment of 64-bit words accessed atomically via the primitive // atomic functions (types Int64 and Uint64 are automatically aligned). -// The first word in a variable or in an allocated struct, array, or slice can -// be relied upon to be 64-bit aligned. +// The first word in an allocated struct, array, or slice; in a global +// variable; or in a local variable (because the subject of all atomic operations +// will escape to the heap) can be relied upon to be 64-bit aligned. // SwapInt32 atomically stores new into *addr and returns the previous *addr value. func SwapInt32(addr *int32, new int32) (old int32)