Why is this changed to intptr_t (which is of undefined size)?