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

Reply via email to