On Thu, 14 Nov 2024, Geert Uytterhoeven wrote:

> On Sun, Oct 27, 2024 at 7:16 AM Finn Thain <fth...@linux-m68k.org> wrote:
> > On Sun, 27 Oct 2024, Thorsten Glaser wrote:
> > > Finn Thain dixit:
> > >
> > > >That would mean __alignof__(foo.b) == sizeof(foo.b) but that's not the
> > > >case on my Linux/i686 system. 4 != 8:
> > > >
> > > >struct baa {
> > > >        int a;
> > > >        long long b;
> > > >} foo;
> > >
> > > That struct is just 12 bytes for you then?
> >
> > Right. i686 and m68k agree on that.
> 
> On i686 (i.e. gcc -m32 on amd64):
> 
>     __alignof__(long long) = 8
> 
> but
> 
>     sizeof(struct baa) = 12
>     __alignof__(struct baa) = 4
> 
> ???

My i686 compiler agrees with your compiler. Whereas on Linux/m68k, 
__alignof__(struct baa) == 2. On NetBSD/m68k I get,

sizeof(struct baa) == 16
__alignof__(long long) == 8
__alignof__(struct baa) == 8

> Isn't the alignment of a struct the largest alignment of any of its members?
> 

Sometimes...

Reply via email to