> I'm tempted to agree. I thought people had stopped numbering bits > in the wrong order
This has nothing to do with numbering bits, it's about how gcc allocates bitfields within structures. Consider: struct { char a:4; char b:4; } Foo; Nothing says that 'a' is in the LSBs of the byte, or the MSBs, or even if 'a' and 'b' are in the same byte, much less how those bits are numbered. On bi-endian chips, the layout *within each byte* changes depending on the byte endianness, even though byte endianness shouldn't affect a one-byte type. > since the IBM/360 was retired. :-) 27 targets define BITS_BIG_ENDIAN to 0. 11 define it to 1. One defines it in a byte-endian way. We certainly haven't seen the last of either numbering scheme. Note that GCC ignores BITS_BIG_ENDIAN when laying out bitfields.