Improve handling of INT_MIN / -1 and related cases.

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

Commit: 278b60598c648b677dbde1330f9f95676aa82e46
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2012-11-20T02:21:28Z
Releases: 9.2.2
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