Improve handling of INT_MIN / -1 and related cases.

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

Commit: 1f7cb5c30983752ff8de833de30afcaee63536d0
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2012-11-19T17:24:25Z
Releases: 9.3.0
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.

This ought to be back-patched, but I'm going to see what the buildfarm
reports about the regression tests first.

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

Files