diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-07-12 09:52:48 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-07-12 09:52:48 +0000 |
commit | c13cd729bfdb5f5eb44ec681db4fea85f029a31f (patch) | |
tree | 8309aac94863ebd96460329ba5839aa7acbebbfc /range.c | |
parent | 4c289d8d104fc3cd73858b4dc2bdf13c62f50377 (diff) |
* range.c (range_max): use FIX2LONG instead of FIX2INT to avoid
RangeError by ((-0x80000001)...(-0x80000001)).max on LP64.
* insns.def (opt_plus): use FIX2LONG instead of FIX2INT to avoid
RangeError by 0x3fffffffffffffff+1 on LP64.
* insns.def (opt_succ): don't use 0x80000000 which assumes 32bit VALUE.
use FIX2LONG instead of FIX2INT.
[ruby-dev:31190]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'range.c')
-rw-r--r-- | range.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -503,7 +503,7 @@ range_max(VALUE range) return Qnil; if (EXCL(range)) { if (FIXNUM_P(e)) { - return INT2NUM(FIX2INT(e) - 1); + return LONG2NUM(FIX2LONG(e) - 1); } return rb_funcall(e, '-', 1, INT2FIX(1)); } |