From: Nobuyoshi Nakada Date: 2007-07-12T16:46:07+09:00 Subject: [ruby-dev:31194] Re: 0x3fffffffffffffff.succ なかだです。 At Thu, 12 Jul 2007 12:38:03 +0900, Tanaka Akira wrote in [ruby-dev:31190]: > LP64 環境で 0x3fffffffffffffff.succ が -4611686018427387904 > になります。 LP64はないので確認できないのですが、これでしょうか。 Index: insns.def =================================================================== --- insns.def (revision 12741) +++ insns.def (working copy) @@ -2305,5 +2305,5 @@ opt_succ /* fixnum + INT2FIX(1) */ val = (recv + (obj & (~1))); - if ((~(recv ^ obj) & (recv ^ val)) & 0x80000000) { + if ((~(recv ^ obj) & (recv ^ val)) & (FIXNUM_MAX + 1)) { val = rb_big_plus(rb_int2big(FIX2INT(recv)), rb_int2big(FIX2INT(obj))); -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦