From b553a34c63da315637afeced46afd05d33f7c623 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 5 Jul 2007 06:56:10 +0000 Subject: [PATCH] * numeric.c (int_pow): even number multiplication never be negative. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ numeric.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) 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); }