On Tue, 7 Aug 2001, Tom Lane wrote:
> Stephan Szabo <sszabo@megazone23.bigpanda.com> writes:
> > I don't think my patch against recent sources would apply cleanly to
> > older ones, and I didn't run the regression against it, but it seemed
> > to work, and is only a two line change in current source.
>
> This patch needs more work. You are assuming that integer division on
> negative numbers works the same everywhere, which it most definitely
> does not (the direction of truncation was unspecified until C99).
> The overflow check will fail on platforms where negative results
> truncate towards minus infinity. So we need a different way of checking
> for overflow.
>
> Right off the bat I'm not coming up with an implementation that's both
> portable and able to accept INT64_MIN, but this has got to be a solved
> problem. Look around, maybe in the GNU or BSD C libraries...
Actually, that wasn't a suggested patch for real inclusion (I should have
mentioned that) but instead for the user in question to try. I'll look
and get something complete for this. :)