Sun WorkShop Compiler C 5.0 User's Guide

Bit-fields

The same situation applies to the promotion of bit-field values. In ANSI/ISO C, if the number of bits in an int or unsigned int bit-field is less than the number of bits in an int, the promoted type is int; otherwise, the promoted type is unsigned int. In most older C compilers, the promoted type is unsigned int for explicitly unsigned bit-fields, and int otherwise.

Similar use of casts can eliminate situations that are ambiguous.