Ian Jackson <[EMAIL PROTECTED]> writes:

> I don't know if there are any plausible machines out there where int*'s
> and char*'s have different representations but in fact just the other
> day I was having a conversation about how on certain weird ARMish chips
> (where pointers address words, not bytes) that would be one reasonable
> ABI given the architecture.

If a (char *)0 doesn't work as a pointer argument that's expecting
(int *)0, then calloc or memset of a structure with pointer members
probably won't reliably give you null pointers.  The amount of code that
depends on that behavior is *significant*.  It's fairly rare to see UNIX
code that doesn't make that assumption.

The only possible exception is if (char *)0 and (int *)0 both use all-zero
bit patterns but are different sizes.  I've never heard of an architecture
that did that.  (I *have* heard of architectures in common use where a
pointer to data is a different size than a pointer to a function, but
function pointers are very rarely passed to variadic functions.)

-- 
Russ Allbery ([EMAIL PROTECTED])               <http://www.eyrie.org/~eagle/>


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to