Martin D Kealey <mar...@kurahaupo.gen.nz> writes:
> It follows that the following assertions are allowed to fail:
>
>   intptr_t i = 0;
>   assert((void*)i == (void*)0);
>   void *p = 0;
>   assert((intptr_t)p == 0);

(After removing the bogus "*" that got inserted.)

Yeah, it looks like that's correct; there doesn't seem to be a
requirement that

>   intptr_t i = 0;
>   (void*)i

yields a NULL pointer.

OTOH,

>   intptr_t i = (intptr_t)(void*)0;
>   (void*)i

should do so.

Though I'd recommend removing use of intptr_t if at all possible, since
it violates semantic categories.

Dale

Reply via email to