Improve handling of INT_MIN / -1 and related cases.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 4387cc9ab4ad7e037df32e93c8435e34b5832cc5
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2012-11-20T02:21:40Z
Releases: 9.1.7
Improve handling of INT_MIN / -1 and related cases.

Some platforms throw an exception for this division, rather than returning
a necessarily-overflowed result.  Since we were testing for overflow after
the fact, an exception isn't nice.  We can avoid the problem by treating
division by -1 as negation.

Add some regression tests so that we'll find out if any compilers try to
optimize away the overflow check conditions.

Back-patch of commit 1f7cb5c30983752ff8de833de30afcaee63536d0.

Per discussion with Xi Wang, though this is different from the patch he
submitted.

Files