>-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.
