summaryrefslogtreecommitdiff
path: root/bignum.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-06-18 09:46:01 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-06-18 09:46:01 +0000
commit1a6a65f16bb8f9f8035dc8d4689ec0b6032047d0 (patch)
tree7c4a486219dc84f02865e2da98c7d943185c3ffa /bignum.c
parentca7bdc882bab78fffc91244496fd2c797018d881 (diff)
* configure.in: Check __int128.
* include/ruby/defines.h (BDIGIT_DBL): Use uint128_t if it is available. (BDIGIT): Use uint64_t if uint128_t is available. (SIZEOF_BDIGITS): Defined for above case. (BDIGIT_DBL_SIGNED): Ditto. (PRI_BDIGIT_PREFIX): Ditto. * include/ruby/ruby.h (PRI_64_PREFIX): Defined. * bignum.c (rb_big_pow): Don't use BITSPERDIG for the condition which rb_big_pow returns Float or Bignum. [ruby-dev:47413] [Feature #8509] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'bignum.c')
-rw-r--r--bignum.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/bignum.c b/bignum.c
index af7d115e02..ec1a864a9a 100644
--- a/bignum.c
+++ b/bignum.c
@@ -4332,7 +4332,7 @@ rb_big_pow(VALUE x, VALUE y)
SIGNED_VALUE mask;
const long xlen = RBIGNUM_LEN(x);
const long xbits = BITSPERDIG*xlen - nlz(RBIGNUM_DIGITS(x)[xlen-1]);
- const long BIGLEN_LIMIT = BITSPERDIG*1024*1024;
+ const long BIGLEN_LIMIT = 32*1024*1024;
if ((xbits > BIGLEN_LIMIT) || (xbits * yy > BIGLEN_LIMIT)) {
rb_warn("in a**b, b may be too big");