https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99492
Bug ID: 99492 Summary: double and double _Complex not aligned consistently on AIX Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: dje at gcc dot gnu.org Target Milestone: --- Target: powerpc-ibm-aix* extern "C" int printf(const char *, ...); struct C { char c1; double _Complex c2; }; struct D { char c1; double c2; }; int main() { printf("%lu\n", __alignof(double _Complex)); printf("offsetof C.c2: %lu %lu\n", __builtin_offsetof(struct C, c2), (unsigned long)&((struct C*)0)->c2); printf("%lu\n", __alignof(double)); printf("offsetof D.c2: %lu %lu\n", __builtin_offsetof(struct D, c2), (unsigned long)&((struct D*)0)->c2); return 0; } xlC/xlClang/clang on AIX all agree that D.c2 is at offset 4.