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.

Reply via email to