Hm, what if the exact result is actually -2147483648  (0x80000000) - it's actually a valid value, too, so the fixup code needs to handle that. Not sure if our tests cover that...