Richard Henderson <[email protected]> writes: > 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.
Awesome. I suspected that was the underlying cause -- missing some of what dh_alias does to the values. As I said in the commit message, I looked at just filling out the dh_typecode_ set to avoid using dh_alias entirely, but that actually turned out to be a more complicated patch as you need to handle 'tl' types, which are machine-specific; something dh_alias handles. Either way works; I took the path which involved creating less new code (as dh_is_signed was already written) to try and make it a bit easier to evaluate the result. Thanks for taking a look at the patch; I had a fine evening chasing this down starting with a bug report written in an embedded python dialect :-) -- -keith
signature.asc
Description: PGP signature
