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

            Bug ID: 99653
           Summary: [AIX] Bitfield placement
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: ABI
          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 int printf(const char *, ...);
struct A {
  long long x2 : 1;
  long long x3 : 20;
  long long x4 : 20;
} a;
void dumpA(void) {
  typedef unsigned char *ucp;
  ucp p;
  for (p = (ucp)&a; p < (ucp)&1[&a]; ++p) {
    printf("%02x ", (unsigned)*p);
  }
  printf("\n");
}
int main(void) {
  a.x2=0;
  a.x2-=1;
  a.x4=-1;
  dumpA();
  return 0;
}

GCC: 80 00 07 ff ff 80 00 00
XLC: 80 00 00 00 ff ff f0 00

Reply via email to