When compiled as a 32-bit process, the following code prints ffffffff82223333 instead of 82223333, so it seems like a pointer is always sign-extended w
ffffffff82223333
82223333