On 20/02/12 17:51, Bernd Schmidt wrote: > On 02/20/2012 06:39 PM, Richard Earnshaw wrote: >> I'm not sure why it should be. Can't a user write >> >> #ifdef __cplusplus >> #define BOOL bool >> #else >> #define bool _Bool >> #endif >> >> struct x { >> volatile BOOL a : 1; >> volatile BOOL b : 1; >> volatile unsigned char c : 6; >> volatile BOOL d : 1; >> } y; >> >> ? >> >> If you've got strict volatile bitfields, then the concept here is that >> the access uses the declared type for accessing the member. Since in >> the ABI bool has a defined size, then it should access the member using >> that size. >> >> On ARM, sizeof bool is 1, so I'd take the above to mean that accessing >> y.a to mean a read of a, b and c, but not d. > > What are your thoughts on the argument about enums? > > > Bernd >
Similar. A particular enumeration type has a defined size, so accesses should use that size. R.