diff --git a/ChangeLog b/ChangeLog index a94f22f11c..dc496a3f0f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Thu Jul 5 15:56:06 2007 Nobuyoshi Nakada + + * numeric.c (int_pow): even number multiplication never be negative. + Thu Jul 5 10:42:07 2007 Nobuyoshi Nakada * include/ruby/{node,ruby}.h, ruby.c: added enum constants for gdb diff --git a/numeric.c b/numeric.c index f3b6387bfa..eba69debb8 100644 --- a/numeric.c +++ b/numeric.c @@ -2304,7 +2304,7 @@ int_pow(long x, unsigned long y) z = xz; } } while (--y); - if (neg) z = -z; + if (neg && (y & 1)) z = -z; return LONG2NUM(z); }