On 2/16/22 17:39, Keith Packard wrote:
Commit 7319d83a (tcg: Combine dh_is_64bit and dh_is_signed to dh_typecode) converted the tcg type system to a 3-bit field from two separate 1-bit fields. This subtly lost the 'signed' information from the types as it uses the dh_alias macro to reduce the types down to basic machine types. However, the dh_alias macro also discards sign information, aliasing 's32' to 'i32'.
The signed information is still there, merged with the typecode: #define dh_typecode_void 0 #define dh_typecode_noreturn 0 #define dh_typecode_i32 2 #define dh_typecode_s32 3 #define dh_typecode_i64 4 #define dh_typecode_s64 5 #define dh_typecode_ptr 6 Note that is_signed is bit 0. But I can see that dh_alias_s32 hides it -- definitely a bug there. r~