Since the prototype of mremap is
void *mremap(void *old_address, size_t old_size, size_t new_size, int flags, ... /* void *new_address*/);
we need to cast new_address to void * when calling mremap. Otherwise,
the wrong value will be passed to mremap on x32.