diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-05 20:40:12 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-05 20:40:12 +0000 |
commit | a697c8b61b74744a63f2e896b36207fadf52f766 (patch) | |
tree | 6ba434899742c31e4fa6884bb877faf6dc112103 /bignum.c | |
parent | 311d499f5e34c9ad65687d241f65c654393ad73b (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.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -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) { |