If we get to that, we probably use the lowest bit as a flag: If it's 1 then it's a native integer shifted right one step. If it's 0 then it's a pointer (assuming at least 16 bit alignment should be safe). That would halve the range of native integers, but combined with 64 bit values it shouldn't be much of a problem. It's uncertain if the saved space makes up for the added complexity when handling native integers, though.
/ Martin Stjernholm, Roxen IS
Previous text:
2003-09-29 20:16: Subject: zero_type();
The optimization isn't impossible; you only need a bit to differ from a pointer or an int value, and that could be store otherwhere.
(Unlikely, though. :) )
/ Mirar