> 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.

Reply via email to