[Bug middle-end/22275] [3.4/4.0/4.1 Regression] bitfield layout change (regression?)
steven at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Mon Oct 31 17:31:00 GMT 2005
------- Comment #8 from steven at gcc dot gnu dot org 2005-10-31 17:31 -------
Right, I didn't know this wasn't opened until July of this year, sorry.
I should have looked.
I still am not sure whether this does break a documented ABI. Relevant
texts in C99 are 6.2.6.1 sub 4, and 6.7.2.1 sub 3.
The test case satisfies 6.7.2.1 sub 3, as far as I can tell:
"The expression that specifies the width of a bit-field shall be an
integer constant expression that has nonnegative value that shall not
exceed the number of bits in an object of the type that is specified
if the colon and expression are omitted. If the value is zero, the
declaration shall have no declarator."
Then, 6.2.6.1 sub 4 says:
"Values stored in bit-fields consist of m bits, where m is the size
specified for the bit-field. The object representation is the set
of m bits the bit-field comprises in the addressable storage unit
holding it."
In our case, we have m==0. As far as I can tell (but I'm not exactly
a C language lawyer ;-) the standard doesn't say anything about signed
or unsigned bit-fields.
So how should we interpret this...
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22275
More information about the Gcc-bugs
mailing list