* Ian Lance Taylor <i...@golang.org> [190125 18:11]:
> On Fri, Jan 25, 2019 at 2:59 PM <johnmr...@gmail.com> wrote:
> > I still can't find anything "authoritative and unambiguous" on this.
> > Therefore apps are going to be released with bugs in them.  Can
> > someone please say specifically when it is _not_ safe to use 64-bit
> > atomic operations?
> >
> > When it is unsafe on a 64-bit OS?
> > When it is unsafe on a 32-bit OS?
> 
> Speaking pedantically, it's not the OS that matters, it's the
> processor (in Go terms, the GOARCH value).
> 
> The exact rules can be seen at the bottom of
> https://golang.org/pkg/sync/atomic/ , in the "Bugs" section.

In that section it says "The first word in a variable or in an allocated
struct, array, or slice can be relied upon to be 64-bit aligned."  Does
that mean that an embedded struct in an allocated struct may not be
aligned?  As in

type A  struct {
    a uint64
}

type B struct {
    b int8
    d A
}

type C struct {
    c int8
    e *A
}

var x = B{3, A{4}}
var y = C{6, &A{7}}

x.d.a might not be aligned, but y.e.a will be?

Thanks...Marvin

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to