On Thu, Feb 09, 2017 at 01:35:31PM +0100, Vincent Lefevre wrote: > If an int can represent all values of the original type (as > restricted by the width, for a bit-field), the value is converted > to an int; otherwise, it is converted to an unsigned int. These are > called the integer promotions.58) All other types are unchanged by > the integer promotions.
I've had a look at the code. We can easily change gv() to cast unsigned bitfields < 32 bits to signed int, but there are lots of places where the code just looks at the VT_UNSIGNED flag or the VT_LLONG basic type and doesn't notice that VT_BITFIELD is set as well (and the size is < 32 bits). Best regards, Daniel _______________________________________________ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel