Yes, exactly. Since overflow cannot happen (sic!), its equivalent. I
have not seen this problem with gcc, I am building with clang currently.
On Sun, 6 Jan 2013, Henrik Grubbstr?m (Lysator) @ Pike (-) developers forum
wrote:
-NUMBER [(-$1a) > 0] : NEG_NUMBER (-$1a)
-NEG_NUMBER [(-$1a) >= 0] : NUMBER (-$1a)
+NUMBER [ !INT32_NEG_OVERFLOW($1a) && (-$1a) > 0] : NEG_NUMBER (-$1a)
+NEG_NUMBER [ !INT32_NEG_OVERFLOW($1a) && (-$1a) >= 0] : NUMBER (-$1a)
Hmm, the above changes hints that the problem is caused by a more
aggressive C-compiler, that transcribes
(-X) > 0 and (-X) >= 0
with
X <= 0 and X < 0
which are usually equvivalent, except for X == MIN_INT.