From: Tanaka Akira Date: 2007-07-12T20:39:07+09:00 Subject: [ruby-dev:31200] Re: [ruby-cvs:19979] Ruby:r12743 (trunk): * range.c (range_max): use FIX2LONG instead of FIX2INT to avoid In article <20070712202111.C089.USA@garbagecollect.jp>, "U.Nakamura" writes: > | * insns.def (opt_succ): don't use 0x80000000 which assumes 32bit VALUE. > | use FIX2LONG instead of FIX2INT. > | [ruby-dev:31190] > > 大変に申し訳ないのですが、64bit VALUEであるにもかかわらずFixnum > が32bit(というか31bit)幅の間抜けな環境があるので、LONG_MAX + 1 > と&を取るということでどうでしょうか。 えー、opt_plus からコピーしたのに、と思って見直すと、opt_plus は #ifndef LONG_LONG_VALUE となってるわけですね。なるほど。 たしかに LONG_MAX + 1 なら LLP64 も含めて動く気がしますので そうしてください。 -- [田中 哲][たなか あきら][Tanaka Akira]