summaryrefslogtreecommitdiff
path: root/bignum.c
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-05 20:40:12 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-05 20:40:12 +0000
commita697c8b61b74744a63f2e896b36207fadf52f766 (patch)
tree6ba434899742c31e4fa6884bb877faf6dc112103 /bignum.c
parent311d499f5e34c9ad65687d241f65c654393ad73b (diff)
merge revision(s) 61517: [Backport #14259]
numeric.c: Fix Integer#pow with a large Fixnum modulo * numeric.c: Fix Integer#pow with a large Fixnum modulo [Bug #14259] [ruby-core:84562] * test/ruby/test_numeric.rb: add assertions for reproducing this bug. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@61629 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'bignum.c')
-rw-r--r--bignum.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/bignum.c b/bignum.c
index 148276743f..7ffb798e5e 100644
--- a/bignum.c
+++ b/bignum.c
@@ -7016,7 +7016,9 @@ int_pow_tmp2(VALUE x, VALUE y, long mm, int nega_flg)
xx = MUL_MODULO(xx, xx, m);
}
-#ifndef DLONG
+#ifdef DLONG
+ tmp = tmp2;
+#else
tmp = FIX2LONG(tmp2);
#endif
if (nega_flg && tmp) {