> +  a += v >> (sizeof (intptr_t) * CHAR_BIT / 2);
> +  b += v & (((intptr_t) 1 << (sizeof (intptr_t) * CHAR_BIT / 2)) - 1);

It would be far easier to read if you added a BITS_PER_POINTER define
somewhere. Other than that it looks good to me, but I cannot approve.
-Andi

Reply via email to