Pre-DR: _Bool bit-fields ======================== Does a named bit-field declared as _Bool have a type which acts like _Bool in terms of conversions on assignment to or initialization of the bit-field, or one which acts like an ordinary unsigned integer type of the specified width? For example, given struct s { _Bool x : 3; } a; does a.x = 3; result in a.x having the value 1 or 3? Does a.x = 0.4; result in a.x having the value 1 or 0? Does a.x = 100.0; result in a.x having the value 1, or undefined behavior? Does a.x = &a; result in a.x having the value 1, or a violation of the constraints for assignment? (For previous discussion see reflector messages 10386-438. I don't think the issue of constraints for assignment was specifically mentioned before. It is necessary first to determine what the answer ought to be - which behavior of conversions to _Bool is correct - and then to determine what wording makes that answer clear, or to make explicit that the choice of one of the two behaviors is unspecified.)