[前][次][番号順一覧][スレッド一覧]

ruby-changes:17481

From: nobu <ko1@a...>
Date: Wed, 13 Oct 2010 22:56:20 +0900 (JST)
Subject: [ruby-changes:17481] Ruby:r29486 (trunk): * numeric.c (check_uint): get rid of overflow on LLP64 platforms.

nobu	2010-10-13 22:53:22 +0900 (Wed, 13 Oct 2010)

  New Revision: 29486

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=29486

  Log:
    * numeric.c (check_uint): get rid of overflow on LLP64 platforms.

  Modified files:
    trunk/ChangeLog
    trunk/numeric.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 29485)
+++ ChangeLog	(revision 29486)
@@ -1,5 +1,7 @@
-Wed Oct 13 22:51:17 2010  Nobuyoshi Nakada  <nobu@r...>
+Wed Oct 13 22:53:19 2010  Nobuyoshi Nakada  <nobu@r...>
 
+	* numeric.c (check_uint): get rid of overflow on LLP64 platforms.
+
 	* insns.def (opt_case_dispatch): use st_data_t.
 
 Wed Oct 13 22:32:34 2010  Takeyuki FUJIOKA  <xibbar@r...>
Index: numeric.c
===================================================================
--- numeric.c	(revision 29485)
+++ numeric.c	(revision 29486)
@@ -1824,7 +1824,7 @@
     if (RTEST(sign)) {
 	/* minus */
 	if ((num & mask) != mask || (num & ~mask) <= INT_MAX + 1UL)
-#define VALUE_MSBMASK   (1L << ((sizeof(VALUE) * CHAR_BIT) - 1))
+#define VALUE_MSBMASK   ((VALUE)1 << ((sizeof(VALUE) * CHAR_BIT) - 1))
 	    rb_raise(rb_eRangeError, "integer %"PRIdVALUE " too small to convert to `unsigned int'", num|VALUE_MSBMASK);
     }
     else {

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]