https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69560

--- Comment #4 from David Merillat <david.merillat at gmail dot com> ---
(In reply to Jonathan Wakely from comment #2)
> See ADJUST_FIELD_ALIGN at
> https://gcc.gnu.org/onlinedocs/gccint/Storage-Layout.html#Storage-Layout
> 
> unsigned long long on x86 is such a type.

Thank you for the pointers into GCC internals, of which I was unaware. 
However, the C++14 specification makes no mention of weaker alignment
requirements for structure members that I could find.

In fact, the specification for alignof() in C++14 is remarkably similar to that
of _Alignof in C11 (I would assume one is derived from the other.  _Alignof
yields what I believe to be the correct answer in this case:

######################################################## test2.c

#include <stdio.h>
#include <stdalign.h>
#include <stdint.h>

int main(void)
{
        printf( "_Alignof(int64_t) = %d\n", _Alignof(int64_t) );
        return 0;
}

##########################################################

gcc -std=C11 test2.c -o test2 -m32

##########################################################

_Alignof(int64_t) = 4

##########################################################

Reply via email to