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

ruby-changes:11301

From: nobu <ko1@a...>
Date: Thu, 12 Mar 2009 18:16:35 +0900 (JST)
Subject: [ruby-changes:11301] Ruby:r22914 (trunk): * array.c, bignum.c, dln.c, error.c, gc.c, io.c, marshal.c,

nobu	2009-03-12 18:16:15 +0900 (Thu, 12 Mar 2009)

  New Revision: 22914

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

  Log:
    * array.c, bignum.c, dln.c, error.c, gc.c, io.c, marshal.c,
      numeric.c, pack.c, strftime.c, string.c, thread.c, transcode.c,
      transcode_data.h, util.c, variable.c, vm_dump.c,
      include/ruby/encoding.h, missing/crypt.c, missing/vsnprintf.c:
      suppress VC type warnings.  [ruby-core:22726]

  Modified files:
    trunk/ChangeLog
    trunk/array.c
    trunk/bignum.c
    trunk/dln.c
    trunk/error.c
    trunk/gc.c
    trunk/include/ruby/encoding.h
    trunk/io.c
    trunk/marshal.c
    trunk/missing/crypt.c
    trunk/missing/vsnprintf.c
    trunk/numeric.c
    trunk/pack.c
    trunk/strftime.c
    trunk/string.c
    trunk/thread.c
    trunk/transcode.c
    trunk/transcode_data.h
    trunk/util.c
    trunk/variable.c
    trunk/vm_dump.c

Index: array.c
===================================================================
--- array.c	(revision 22913)
+++ array.c	(revision 22914)
@@ -25,7 +25,7 @@
 static ID id_cmp;
 
 #define ARY_DEFAULT_SIZE 16
-#define ARY_MAX_SIZE (LONG_MAX / sizeof(VALUE))
+#define ARY_MAX_SIZE (LONG_MAX / (int)sizeof(VALUE))
 
 void
 rb_mem_clear(register VALUE *mem, register long size)
@@ -3089,7 +3089,7 @@
     }
     else {
 	hash = ary_make_hash(ary);
-	if (RARRAY_LEN(ary) == RHASH_SIZE(hash)) {
+	if (RARRAY_LEN(ary) == (long)RHASH_SIZE(hash)) {
 	    return Qnil;
 	}
 	for (i=j=0; i<RARRAY_LEN(ary); i++) {
@@ -3460,7 +3460,7 @@
 	}
 	return rb_ary_new3(3, ptr[i], ptr[j], ptr[k]);
     }
-    if (n < sizeof(idx)/sizeof(idx[0])) {
+    if ((size_t)n < sizeof(idx)/sizeof(idx[0])) {
 	long sorted[sizeof(idx)/sizeof(idx[0])];
 	sorted[0] = idx[0] = (long)(rb_genrand_real()*len);
 	for (i=1; i<n; i++) {
Index: include/ruby/encoding.h
===================================================================
--- include/ruby/encoding.h	(revision 22913)
+++ include/ruby/encoding.h	(revision 22914)
@@ -32,7 +32,7 @@
         rb_enc_set_index(rb_encoding_set_obj, encoding_set_enc_index); \
 } while (0)
 
-#define ENCODING_GET_INLINED(obj) ((RBASIC(obj)->flags & ENCODING_MASK)>>ENCODING_SHIFT)
+#define ENCODING_GET_INLINED(obj) (int)((RBASIC(obj)->flags & ENCODING_MASK)>>ENCODING_SHIFT)
 #define ENCODING_GET(obj) \
     (ENCODING_GET_INLINED(obj) != ENCODING_INLINE_MAX ? \
      ENCODING_GET_INLINED(obj) : \
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 22913)
+++ ChangeLog	(revision 22914)
@@ -1,5 +1,11 @@
-Thu Mar 12 18:09:14 2009  Nobuyoshi Nakada  <nobu@r...>
+Thu Mar 12 18:16:12 2009  Nobuyoshi Nakada  <nobu@r...>
 
+	* array.c, bignum.c, dln.c, error.c, gc.c, io.c, marshal.c,
+	  numeric.c, pack.c, strftime.c, string.c, thread.c, transcode.c,
+	  transcode_data.h, util.c, variable.c, vm_dump.c,
+	  include/ruby/encoding.h, missing/crypt.c, missing/vsnprintf.c:
+	  suppress VC type warnings.  [ruby-core:22726]
+
 	* marshal.c (div0), numeric.c (infinite_value): new functions to
 	  get rid of VC divion by 0 warnings.
 
Index: variable.c
===================================================================
--- variable.c	(revision 22913)
+++ variable.c	(revision 22914)
@@ -963,7 +963,7 @@
         iv_index_tbl = ROBJECT_IV_INDEX_TBL(obj);
         if (!iv_index_tbl) break;
         if (!st_lookup(iv_index_tbl, id, &index)) break;
-        if (len <= index) break;
+        if (len <= (long)index) break;
         val = ptr[index];
         if (val != Qundef)
             return val;
@@ -1024,7 +1024,7 @@
             ivar_extended = 1;
         }
         len = ROBJECT_NUMIV(obj);
-        if (len <= index) {
+        if (len <= (long)index) {
             VALUE *ptr = ROBJECT_IVPTR(obj);
             if (index < ROBJECT_EMBED_LEN_MAX) {
                 RBASIC(obj)->flags |= ROBJECT_EMBED;
@@ -1037,7 +1037,7 @@
                 VALUE *newptr;
                 long newsize = (index+1) + (index+1)/4; /* (index+1)*1.25 */
                 if (!ivar_extended &&
-                    iv_index_tbl->num_entries < newsize) {
+                    iv_index_tbl->num_entries < (st_index_t)newsize) {
                     newsize = iv_index_tbl->num_entries;
                 }
                 if (RBASIC(obj)->flags & ROBJECT_EMBED) {
@@ -1081,7 +1081,7 @@
         iv_index_tbl = ROBJECT_IV_INDEX_TBL(obj);
         if (!iv_index_tbl) break;
         if (!st_lookup(iv_index_tbl, id, &index)) break;
-        if (ROBJECT_NUMIV(obj) <= index) break;
+        if (ROBJECT_NUMIV(obj) <= (long)index) break;
         val = ROBJECT_IVPTR(obj)[index];
         if (val != Qundef)
             return Qtrue;
@@ -1108,7 +1108,7 @@
 static int
 obj_ivar_i(ID key, VALUE index, struct obj_ivar_tag *data)
 {
-    if (index < ROBJECT_NUMIV(data->obj)) {
+    if ((long)index < ROBJECT_NUMIV(data->obj)) {
         VALUE val = ROBJECT_IVPTR(data->obj)[index];
         if (val != Qundef) {
             return (data->func)(key, val, data->arg);
@@ -1238,7 +1238,7 @@
         iv_index_tbl = ROBJECT_IV_INDEX_TBL(obj);
         if (!iv_index_tbl) break;
         if (!st_lookup(iv_index_tbl, id, &index)) break;
-        if (ROBJECT_NUMIV(obj) <= index) break;
+        if (ROBJECT_NUMIV(obj) <= (long)index) break;
         val = ROBJECT_IVPTR(obj)[index];
         if (val != Qundef) {
             ROBJECT_IVPTR(obj)[index] = Qundef;
Index: string.c
===================================================================
--- string.c	(revision 22913)
+++ string.c	(revision 22914)
@@ -1279,7 +1279,7 @@
     VALUE str = rb_string_value(ptr);
     char *s = RSTRING_PTR(str);
 
-    if (!s || RSTRING_LEN(str) != strlen(s)) {
+    if (!s || RSTRING_LEN(str) != (long)strlen(s)) {
 	rb_raise(rb_eArgError, "string contains null byte");
     }
     return s;
@@ -4794,8 +4794,8 @@
     str_modify_keep_cr(str);
     s = RSTRING_PTR(str); send = RSTRING_END(str);
     if (sflag) {
-	int clen, tlen, max = RSTRING_LEN(str);
-	int offset, save = -1;
+	int offset, clen, tlen, max = RSTRING_LEN(str);
+	unsigned int save = -1;
 	char *buf = ALLOC_N(char, max), *t = buf;
 
 	while (s < send) {
@@ -5167,9 +5167,9 @@
     rb_encoding *enc = 0;
     VALUE del = 0, nodel = 0;
     char *s, *send, *t;
-    int save, modify = 0;
-    int i;
+    int i, modify = 0;
     int ascompat, singlebyte = single_byte_optimizable(str);
+    unsigned int save;
 
     if (argc == 0) {
 	enc = STR_ENC_GET(str);
@@ -7013,11 +7013,11 @@
     str = rb_enc_str_new(0, RSTRING_LEN(sym)+1, enc);
     RSTRING_PTR(str)[0] = ':';
     memcpy(RSTRING_PTR(str)+1, RSTRING_PTR(sym), RSTRING_LEN(sym));
-    if (RSTRING_LEN(sym) != strlen(RSTRING_PTR(sym)) ||
+    if (RSTRING_LEN(sym) != (long)strlen(RSTRING_PTR(sym)) ||
 	!rb_enc_symname_p(RSTRING_PTR(sym), enc) ||
 	!sym_printable(RSTRING_PTR(sym), RSTRING_END(sym), enc)) {
 	str = rb_str_inspect(str);
-	strncpy(RSTRING_PTR(str), ":\"", 2);
+	memcpy(RSTRING_PTR(str), ":\"", 2);
     }
     return str;
 }
Index: io.c
===================================================================
--- io.c	(revision 22913)
+++ io.c	(revision 22914)
@@ -7669,7 +7669,7 @@
 
     while (use_eof || 0 < copy_length) {
         if (!use_eof && copy_length < sizeof(buf)) {
-            len = copy_length;
+            len = (size_t)copy_length;
         }
         else {
             len = sizeof(buf);
@@ -7862,7 +7862,7 @@
         long len = src_fptr->rbuf_len;
         VALUE str;
         if (stp->copy_length != (off_t)-1 && stp->copy_length < len) {
-            len = stp->copy_length;
+            len = (size_t)stp->copy_length;
         }
         str = rb_str_buf_new(len);
         rb_str_resize(str,len);
Index: pack.c
===================================================================
--- pack.c	(revision 22913)
+++ pack.c	(revision 22914)
@@ -690,7 +690,7 @@
 		char c;
 
 		from = NEXTFROM;
-		c = num2i32(from);
+		c = (char)num2i32(from);
 		rb_str_buf_cat(res, &c, sizeof(char));
 	    }
 	    break;
@@ -701,7 +701,7 @@
 		short s;
 
 		from = NEXTFROM;
-		s = num2i32(from);
+		s = (short)num2i32(from);
 		rb_str_buf_cat(res, OFF16(&s), NATINT_LEN(short,2));
 	    }
 	    break;
@@ -744,7 +744,7 @@
 		unsigned short s;
 
 		from = NEXTFROM;
-		s = num2i32(from);
+		s = (unsigned short)num2i32(from);
 		s = NATINT_HTONS(s);
 		rb_str_buf_cat(res, OFF16(&s), NATINT_LEN(short,2));
 	    }
@@ -766,7 +766,7 @@
 		unsigned short s;
 
 		from = NEXTFROM;
-		s = num2i32(from);
+		s = (unsigned short)num2i32(from);
 		s = NATINT_HTOVS(s);
 		rb_str_buf_cat(res, OFF16(&s), NATINT_LEN(short,2));
 	    }
@@ -789,7 +789,7 @@
 		float f;
 
 		from = NEXTFROM;
-		f = RFLOAT_VALUE(rb_to_float(from));
+		f = (float)RFLOAT_VALUE(rb_to_float(from));
 		rb_str_buf_cat(res, (char*)&f, sizeof(float));
 	    }
 	    break;
@@ -800,7 +800,7 @@
 		FLOAT_CONVWITH(ftmp);
 
 		from = NEXTFROM;
-		f = RFLOAT_VALUE(rb_to_float(from));
+		f = (float)RFLOAT_VALUE(rb_to_float(from));
 		f = HTOVF(f,ftmp);
 		rb_str_buf_cat(res, (char*)&f, sizeof(float));
 	    }
@@ -835,7 +835,7 @@
 		FLOAT_CONVWITH(ftmp);
 
 		from = NEXTFROM;
-		f = RFLOAT_VALUE(rb_to_float(from));
+		f = (float)RFLOAT_VALUE(rb_to_float(from));
 		f = HTONF(f,ftmp);
 		rb_str_buf_cat(res, (char*)&f, sizeof(float));
 	    }
@@ -990,7 +990,7 @@
 		}
 
 		while (ul) {
-		    c = ((ul & 0x7f) | 0x80);
+		    c = (char)(ul & 0x7f) | 0x80;
 		    rb_str_buf_cat(buf, &c, sizeof(char));
 		    ul >>=  7;
 		}
@@ -1050,7 +1050,7 @@
     int padding;
 
     if (type == 'u') {
-	buff[i++] = len + ' ';
+	buff[i++] = (char)len + ' ';
 	padding = '`';
     }
     else {
@@ -1162,7 +1162,7 @@
 
 #define PACK_LENGTH_ADJUST_SIZE(sz) do {	\
     tmp = 0;					\
-    if (len > (send-s)/sz) {			\
+    if (len > (long)((send-s)/sz)) {		\
         if (!star) {				\
 	    tmp = len-(send-s)/sz;		\
         }					\
@@ -1807,9 +1807,9 @@
 			    d = (*s++ - ' ') & 077;
 			else
 			    d = 0;
-			hunk[0] = a << 2 | b >> 4;
-			hunk[1] = b << 4 | c >> 2;
-			hunk[2] = c << 6 | d;
+			hunk[0] = (char)(a << 2 | b >> 4);
+			hunk[1] = (char)(b << 4 | c >> 2);
+			hunk[2] = (char)(c << 6 | d);
 			memcpy(ptr, hunk, mlen);
 			ptr += mlen;
 			len -= mlen;
@@ -1990,7 +1990,7 @@
 	    break;
 
 	  case 'p':
-	    if (len > (send - s) / sizeof(char *))
+	    if (len > (long)((send - s) / sizeof(char *)))
 		len = (send - s) / sizeof(char *);
 	    while (len-- > 0) {
 		if (send - s < sizeof(char *))
@@ -2075,38 +2075,38 @@
 	return 1;
     }
     if (uv <= 0x7ff) {
-	buf[0] = ((uv>>6)&0xff)|0xc0;
-	buf[1] = (uv&0x3f)|0x80;
+	buf[0] = (char)((uv>>6)&0xff)|0xc0;
+	buf[1] = (char)(uv&0x3f)|0x80;
 	return 2;
     }
     if (uv <= 0xffff) {
-	buf[0] = ((uv>>12)&0xff)|0xe0;
-	buf[1] = ((uv>>6)&0x3f)|0x80;
-	buf[2] = (uv&0x3f)|0x80;
+	buf[0] = (char)((uv>>12)&0xff)|0xe0;
+	buf[1] = (char)((uv>>6)&0x3f)|0x80;
+	buf[2] = (char)(uv&0x3f)|0x80;
 	return 3;
     }
     if (uv <= 0x1fffff) {
-	buf[0] = ((uv>>18)&0xff)|0xf0;
-	buf[1] = ((uv>>12)&0x3f)|0x80;
-	buf[2] = ((uv>>6)&0x3f)|0x80;
-	buf[3] = (uv&0x3f)|0x80;
+	buf[0] = (char)((uv>>18)&0xff)|0xf0;
+	buf[1] = (char)((uv>>12)&0x3f)|0x80;
+	buf[2] = (char)((uv>>6)&0x3f)|0x80;
+	buf[3] = (char)(uv&0x3f)|0x80;
 	return 4;
     }
     if (uv <= 0x3ffffff) {
-	buf[0] = ((uv>>24)&0xff)|0xf8;
-	buf[1] = ((uv>>18)&0x3f)|0x80;
-	buf[2] = ((uv>>12)&0x3f)|0x80;
-	buf[3] = ((uv>>6)&0x3f)|0x80;
-	buf[4] = (uv&0x3f)|0x80;
+	buf[0] = (char)((uv>>24)&0xff)|0xf8;
+	buf[1] = (char)((uv>>18)&0x3f)|0x80;
+	buf[2] = (char)((uv>>12)&0x3f)|0x80;
+	buf[3] = (char)((uv>>6)&0x3f)|0x80;
+	buf[4] = (char)(uv&0x3f)|0x80;
 	return 5;
     }
     if (uv <= 0x7fffffff) {
-	buf[0] = ((uv>>30)&0xff)|0xfc;
-	buf[1] = ((uv>>24)&0x3f)|0x80;
-	buf[2] = ((uv>>18)&0x3f)|0x80;
-	buf[3] = ((uv>>12)&0x3f)|0x80;
-	buf[4] = ((uv>>6)&0x3f)|0x80;
-	buf[5] = (uv&0x3f)|0x80;
+	buf[0] = (char)((uv>>30)&0xff)|0xfc;
+	buf[1] = (char)((uv>>24)&0x3f)|0x80;
+	buf[2] = (char)((uv>>18)&0x3f)|0x80;
+	buf[3] = (char)((uv>>12)&0x3f)|0x80;
+	buf[4] = (char)((uv>>6)&0x3f)|0x80;
+	buf[5] = (char)(uv&0x3f)|0x80;
 	return 6;
     }
     rb_raise(rb_eRangeError, "pack(U): value out of range");
Index: thread.c
===================================================================
--- thread.c	(revision 22913)
+++ thread.c	(revision 22914)
@@ -2280,7 +2280,7 @@
             return;
         }
     }
-    if (set->fdset->fd_count >= set->capa) {
+    if (set->fdset->fd_count >= (unsigned)set->capa) {
 	set->capa = (set->fdset->fd_count / FD_SETSIZE + 1) * FD_SETSIZE;
 	set->fdset = xrealloc(set->fdset, sizeof(unsigned int) + sizeof(SOCKET) * set->capa);
     }
Index: gc.c
===================================================================
--- gc.c	(revision 22913)
+++ gc.c	(revision 22914)
@@ -1090,12 +1090,12 @@
 #define STACK_LEVEL_MAX (th->machine_stack_maxsize/sizeof(VALUE))
 
 #if STACK_GROW_DIRECTION < 0
-# define STACK_LENGTH  (STACK_START - STACK_END)
+# define STACK_LENGTH  (size_t)(STACK_START - STACK_END)
 #elif STACK_GROW_DIRECTION > 0
-# define STACK_LENGTH  (STACK_END - STACK_START + 1)
+# define STACK_LENGTH  (size_t)(STACK_END - STACK_START + 1)
 #else
-# define STACK_LENGTH  ((STACK_END < STACK_START) ? STACK_START - STACK_END\
-                                           : STACK_END - STACK_START + 1)
+# define STACK_LENGTH  ((STACK_END < STACK_START) ? (size_t)(STACK_START - STACK_END) \
+			: (size_t)(STACK_END - STACK_START + 1))
 #endif
 #if !STACK_GROW_DIRECTION
 int ruby_stack_grow_direction;
Index: strftime.c
===================================================================
--- strftime.c	(revision 22913)
+++ strftime.c	(revision 22914)
@@ -515,7 +515,7 @@
 					time_t now;
 					time(&now);
 					utc = *gmtime(&now);
-					off = (now - mktime(&utc)) / 60;
+					off = (long)((now - mktime(&utc)) / 60);
 				}
 #endif
 #endif /* !HAVE_VAR_TIMEZONE */
Index: dln.c
===================================================================
--- dln.c	(revision 22913)
+++ dln.c	(revision 22914)
@@ -1475,7 +1475,7 @@
     return 0;			/* dummy return */
 }
 
-static char *dln_find_1(const char *fname, const char *path, char *buf, int size, int exe_flag);
+static char *dln_find_1(const char *fname, const char *path, char *buf, size_t size, int exe_flag);
 
 char *
 dln_find_exe_r(const char *fname, const char *path, char *buf, int size)
@@ -1516,14 +1516,14 @@
 }
 
 static char *
-dln_find_1(const char *fname, const char *path, char *fbuf, int size,
+dln_find_1(const char *fname, const char *path, char *fbuf, size_t size,
 	   int exe_flag /* non 0 if looking for executable. */)
 {
     register const char *dp;
     register const char *ep;
     register char *bp;
     struct stat st;
-    int i, fspace;
+    size_t i, fspace;
 #ifdef DOSISH
     int is_abs = 0, has_path = 0, has_ext = 0;
     const char *p = fname;
Index: util.c
===================================================================
--- util.c	(revision 22913)
+++ util.c	(revision 22914)
@@ -1170,11 +1170,11 @@
 multadd(Bigint *b, int m, int a)   /* multiply by m and add a */
 {
     int i, wds;
+    ULong *x;
 #ifdef ULLong
-    ULong *x;
     ULLong carry, y;
 #else
-    ULong carry, *x, y;
+    ULong carry, y;
 #ifdef Pack_32
     ULong xi, z;
 #endif
@@ -1189,7 +1189,7 @@
 #ifdef ULLong
         y = *x * (ULLong)m + carry;
         carry = y >> 32;
-        *x++ = y & FFFFFFFF;
+        *x++ = (ULong)y & FFFFFFFF;
 #else
 #ifdef Pack_32
         xi = *x;
@@ -1211,7 +1211,7 @@
             Bfree(b);
             b = b1;
         }
-        b->x[wds++] = carry;
+        b->x[wds++] = (ULong)carry;
         b->wds = wds;
     }
     return b;
@@ -1378,9 +1378,9 @@
             do {
                 z = *x++ * (ULLong)y + *xc + carry;
                 carry = z >> 32;
-                *xc++ = z & FFFFFFFF;
+                *xc++ = (ULong)z & FFFFFFFF;
             } while (x < xae);
-            *xc = carry;
+            *xc = (ULong)carry;
         }
     }
 #else
@@ -1397,7 +1397,7 @@
                 carry = z2 >> 16;
                 Storeinc(xc, z2, z);
             } while (x < xae);
-            *xc = carry;
+            *xc = (ULong)carry;
         }
         if (y = *xb >> 16) {
             x = xa;
@@ -1425,7 +1425,7 @@
                 carry = z >> 16;
                 *xc++ = z & 0xffff;
             } while (x < xae);
-            *xc = carry;
+            *xc = (ULong)carry;
         }
     }
 #endif
@@ -1616,12 +1616,12 @@
     do {
         y = (ULLong)*xa++ - *xb++ - borrow;
         borrow = y >> 32 & (ULong)1;
-        *xc++ = y & FFFFFFFF;
+        *xc++ = (ULong)y & FFFFFFFF;
     } while (xb < xbe);
     while (xa < xae) {
         y = *xa++ - borrow;
         borrow = y >> 32 & (ULong)1;
-        *xc++ = y & FFFFFFFF;
+        *xc++ = (ULong)y & FFFFFFFF;
     }
 #else
 #ifdef Pack_32
@@ -2979,7 +2979,7 @@
             carry = ys >> 32;
             y = *bx - (ys & FFFFFFFF) - borrow;
             borrow = y >> 32 & (ULong)1;
-            *bx++ = y & FFFFFFFF;
+            *bx++ = (ULong)y & FFFFFFFF;
 #else
 #ifdef Pack_32
             si = *sx++;
@@ -3019,7 +3019,7 @@
             carry = ys >> 32;
             y = *bx - (ys & FFFFFFFF) - borrow;
             borrow = y >> 32 & (ULong)1;
-            *bx++ = y & FFFFFFFF;
+            *bx++ = (ULong)y & FFFFFFFF;
 #else
 #ifdef Pack_32
             si = *sx++;
Index: error.c
===================================================================
--- error.c	(revision 22913)
+++ error.c	(revision 22914)
@@ -205,8 +205,8 @@
     FILE *out = stderr;
     int len = err_position_0(buf, BUFSIZ, file, line);
 
-    if (fwrite(buf, 1, len, out) == len ||
-	fwrite(buf, 1, len, (out = stdout)) == len) {
+    if ((ssize_t)fwrite(buf, 1, len, out) == (ssize_t)len ||
+	(ssize_t)fwrite(buf, 1, len, (out = stdout)) == (ssize_t)len) {
 
 	fputs("[BUG] ", out);
 	vfprintf(out, fmt, args);
Index: numeric.c
===================================================================
--- numeric.c	(revision 22913)
+++ numeric.c	(revision 22914)
@@ -1954,7 +1954,7 @@
 	  out_of_range:
 	    rb_raise(rb_eRangeError, "%"PRIdVALUE " out of char range", i);
 	}
-	c = i;
+	c = (char)i;
 	if (i < 0x80) {
 	    return rb_usascii_str_new(&c, 1);
 	}
Index: vm_dump.c
===================================================================
--- vm_dump.c	(revision 22913)
+++ vm_dump.c	(revision 22914)
@@ -34,11 +34,11 @@
 	biseq_name = "";	/* RSTRING(cfp->block_iseq->name)->ptr; */
     }
 
-    if (lfp < 0 || lfp > th->stack_size) {
+    if (lfp < 0 || (size_t)lfp > th->stack_size) {
 	lfp = (ptrdiff_t)cfp->lfp;
 	lfp_in_heap = 'p';
     }
-    if (dfp < 0 || dfp > th->stack_size) {
+    if (dfp < 0 || (size_t)dfp > th->stack_size) {
 	dfp = (ptrdiff_t)cfp->dfp;
 	dfp_in_heap = 'p';
     }
@@ -338,9 +338,9 @@
 	pc = cfp->pc - cfp->iseq->iseq_encoded;
     }
 
-    if (lfp < 0 || lfp > th->stack_size)
+    if (lfp < 0 || (size_t)lfp > th->stack_size)
 	lfp = -1;
-    if (dfp < 0 || dfp > th->stack_size)
+    if (dfp < 0 || (size_t)dfp > th->stack_size)
 	dfp = -1;
 
     cfpi = ((rb_control_frame_t *)(th->stack + th->stack_size)) - cfp;
Index: transcode_data.h
===================================================================
--- transcode_data.h	(revision 22913)
+++ transcode_data.h	(revision 22914)
@@ -37,7 +37,7 @@
 #define STR1	(PType 0x11)	/* string 4 <= len <= 259 bytes: 1byte length + content */
 #define GB4bt	(PType 0x12)	/* GB18030 four bytes payload */
 
-#define STR1_LENGTH(byte_addr) (*(byte_addr) + 4)
+#define STR1_LENGTH(byte_addr) (unsigned int)(*(byte_addr) + 4)
 #define STR1_BYTEINDEX(w) ((w) >> 6)
 #define makeSTR1(bi) (((bi) << 6) | STR1)
 #define makeSTR1LEN(len) ((len)-4)
@@ -48,15 +48,15 @@
 #define o4(b0,b1,b2,b3)	(PType(((((unsigned char)(b1))<<8)|(((unsigned char)(b2))<<16)|(((unsigned char)(b3))<<24)|((((unsigned char)(b0))&0x07)<<5)|FOURbt)&0xffffffffU))
 #define g4(b0,b1,b2,b3) (PType(((((unsigned char)(b0))<<8)|(((unsigned char)(b2))<<16)|((((unsigned char)(b1))&0x0f)<<24)|((((unsigned int)(unsigned char)(b3))&0x0f)<<28)|GB4bt)&0xffffffffU))
 
-#define getBT1(a)	(((a)>> 8)&0xFF)
-#define getBT2(a)	(((a)>>16)&0xFF)
-#define getBT3(a)	(((a)>>24)&0xFF)
-#define getBT0(a)	((((a)>> 5)&0x07)|0xF0)   /* for UTF-8 only!!! */
+#define getBT1(a)	((unsigned char)((a)>> 8))
+#define getBT2(a)	((unsigned char)((a)>>16))
+#define getBT3(a)	((unsigned char)((a)>>24))
+#define getBT0(a)	(((unsigned char)((a)>> 5)&0x07)|0xF0)   /* for UTF-8 only!!! */
 
-#define getGB4bt0(a)	(((a)>> 8)&0xFF)
-#define getGB4bt1(a)	(((a)>>24)&0x0F|0x30)
-#define getGB4bt2(a)	(((a)>>16)&0xFF)
-#define getGB4bt3(a)	(((a)>>28)&0x0F|0x30)
+#define getGB4bt0(a)	((unsigned char)((a)>> 8))
+#define getGB4bt1(a)	((unsigned char)((a)>>24)&0x0F|0x30)
+#define getGB4bt2(a)	((unsigned char)((a)>>16))
+#define getGB4bt3(a)	((unsigned char)((a)>>28)&0x0F|0x30)
 
 #define o2FUNii(b1,b2)	(PType((((unsigned char)(b1))<<8)|(((unsigned char)(b2))<<16)|FUNii))
 
Index: bignum.c
===================================================================
--- bignum.c	(revision 22913)
+++ bignum.c	(revision 22914)
@@ -69,10 +69,11 @@
 }
 
 #define RBIGNUM_SET_LEN(b,l) \
-  ((RBASIC(b)->flags & RBIGNUM_EMBED_FLAG) ? \
-   (RBASIC(b)->flags = (RBASIC(b)->flags & ~RBIGNUM_EMBED_LEN_MASK) | \
-      ((l) << RBIGNUM_EMBED_LEN_SHIFT)) : \
-   (RBIGNUM(b)->as.heap.len = (l)))
+    ((RBASIC(b)->flags & RBIGNUM_EMBED_FLAG) ? \
+     (void)(RBASIC(b)->flags = \
+	    (RBASIC(b)->flags & ~RBIGNUM_EMBED_LEN_MASK) | \
+	    ((l) << RBIGNUM_EMBED_LEN_SHIFT)) : \
+     (void)(RBIGNUM(b)->as.heap.len = (l)))
 
 static void
 rb_big_realloc(VALUE big, long len)
@@ -190,17 +191,21 @@
     long len = RBIGNUM_LEN(x);
     BDIGIT *ds = BDIGITS(x);
 
-    if (len*SIZEOF_BDIGITS <= sizeof(long)) {
+    if (len > 0 && len*SIZEOF_BDIGITS <= sizeof(long)) {
 	long num = 0;
+#if 2*SIZEOF_BDIGITS > SIZEOF_LONG
+	num = (long)ds[0];
+#else
 	while (len--) {
-	    num = BIGUP(num) + ds[len];
+	    num = (long)(BIGUP(num) + ds[len]);
 	}
+#endif
 	if (num >= 0) {
 	    if (RBIGNUM_SIGN(x)) {
 		if (POSFIXABLE(num)) return LONG2FIX(num);
 	    }
 	    else {
-		if (NEGFIXABLE(-(long)num)) return LONG2FIX(-(long)num);
+		if (NEGFIXABLE(-num)) return LONG2FIX(-num);
 	    }
 	}
     }
@@ -1017,7 +1022,7 @@
 	num = BIGUP(num);
 	num += ds[len];
     }
-    return num;
+    return (VALUE)num;
 }
 
 VALUE
@@ -1581,7 +1586,7 @@
 	    n = BIGDN(n);
 	}
 	if (n) {
-	    zds[i + j] = n;
+	    zds[i + j] = (BDIGIT)n;
 	}
     }
     rb_thread_check_ints();
@@ -1770,7 +1775,7 @@
 	    zds[i + len] = BIGLO(c);
 	    c = BIGDN(c);
 	}
-	if (c) zds[i + len + 1] += c;
+	if (c) zds[i + len + 1] += (BDIGIT)c;
     }
     return z;
 }
@@ -1889,7 +1894,7 @@
     for (nyzero = 0; !yds[nyzero]; nyzero++);
     do {
 	if (bds->stop) return Qnil;
-	if (zds[j] ==  yds[ny-1]) q = BIGRAD-1;
+	if (zds[j] ==  yds[ny-1]) q = (BDIGIT)BIGRAD-1;
 	else q = (BDIGIT)((BIGUP(zds[j]) + zds[j-1])/yds[ny-1]);
 	if (q) {
            i = nyzero; num = 0; t2 = 0;
@@ -2480,7 +2485,7 @@
 	zds[i] = ds1[i] | ds2[i];
     }
     for (; i<l2; i++) {
-	zds[i] = sign?ds2[i]:(BIGRAD-1);
+	zds[i] = sign?ds2[i]:(BDIGIT)(BIGRAD-1);
     }
     if (!RBIGNUM_SIGN(z)) get2comp(z);
 
Index: marshal.c
===================================================================
--- marshal.c	(revision 22913)
+++ marshal.c	(revision 22914)
@@ -246,7 +246,7 @@
 	return;
     }
     for (i=1;i<sizeof(long)+1;i++) {
-	buf[i] = x & 0xff;
+	buf[i] = (char)(x & 0xff);
 	x = RSHIFT(x,8);
 	if (x == 0) {
 	    buf[0] = i;
@@ -290,15 +290,15 @@
 	    d = modf(ldexp(d, MANT_BITS), &n);
 	    m = (unsigned long)n;
 #if MANT_BITS > 24
-	    buf[i++] = m >> 24;
+	    buf[i++] = (char)(m >> 24);
 #endif
 #if MANT_BITS > 16
-	    buf[i++] = m >> 16;
+	    buf[i++] = (char)(m >> 16);
 #endif
 #if MANT_BITS > 8
-	    buf[i++] = m >> 8;
+	    buf[i++] = (char)(m >> 8);
 #endif
-	    buf[i++] = m;
+	    buf[i++] = (char)m;
 	} while (d > 0);
 	while (!buf[i - 1]) --i;
     }
Index: transcode.c
===================================================================
--- transcode.c	(revision 22913)
+++ transcode.c	(revision 22914)
@@ -86,7 +86,7 @@
 #define TRANSCODING_WRITEBUF_SIZE(tc) \
     ((tc)->transcoder->max_output <= sizeof((tc)->writebuf.ary) ? \
      sizeof((tc)->writebuf.ary) : \
-     (tc)->transcoder->max_output)
+     (size_t)(tc)->transcoder->max_output)
 #define TRANSCODING_STATE_EMBED_MAX sizeof(union rb_transcoding_state_t)
 #define TRANSCODING_STATE(tc) \
     ((tc)->transcoder->state_size <= sizeof((tc)->state) ? \
@@ -1598,11 +1598,11 @@
         *data_end_p = buf;
         *buf_end_p = buf+need;
     }
-    else if (*buf_end_p - *data_end_p < need) {
+    else if ((size_t)(*buf_end_p - *data_end_p) < need) {
         MEMMOVE(*buf_start_p, *data_start_p, unsigned char, *data_end_p - *data_start_p);
         *data_end_p = *buf_start_p + (*data_end_p - *data_start_p);
         *data_start_p = *buf_start_p;
-        if (*buf_end_p - *data_end_p < need) {
+        if ((size_t)(*buf_end_p - *data_end_p) < need) {
             unsigned char *buf;
             size_t s = (*data_end_p - *buf_start_p) + need;
             if (s < need)
@@ -2019,7 +2019,7 @@
             end = start + ec->last_error.error_bytes_len;
             n = rb_enc_precise_mbclen(start, end, utf8);
             if (MBCLEN_CHARFOUND_P(n) &&
-                MBCLEN_CHARFOUND_LEN(n) == ec->last_error.error_bytes_len) {
+                (size_t)MBCLEN_CHARFOUND_LEN(n) == ec->last_error.error_bytes_len) {
                 unsigned int cc = rb_enc_codepoint(start, end, utf8);
                 dumped = rb_sprintf("U+%04X", cc);
             }
Index: missing/crypt.c
===================================================================
--- missing/crypt.c	(revision 22913)
+++ missing/crypt.c	(revision 22914)
@@ -257,10 +257,10 @@
  */
 #define	TO_SIX_BIT(rslt, src) {				\
 		C_block cvt;				\
-		cvt.b[0] = src; src >>= 6;		\
-		cvt.b[1] = src; src >>= 6;		\
-		cvt.b[2] = src; src >>= 6;		\
-		cvt.b[3] = src;				\
+		cvt.b[0] = (unsigned char)src; src >>= 6; \
+		cvt.b[1] = (unsigned char)src; src >>= 6; \
+		cvt.b[2] = (unsigned char)src; src >>= 6; \
+		cvt.b[3] = (unsigned char)src;		\
 		rslt = (cvt.b32.i0 & 0x3f3f3f3fL) << 2;	\
 	}
 
@@ -784,7 +784,7 @@
 			k = (k|07) - (k&07);
 			k++;
 		}
-		perm[i] = k;
+		perm[i] = (unsigned char)k;
 	}
 #ifdef DEBUG
 	prtab("pc1tab", perm, 8);
@@ -831,7 +831,7 @@
 				k = (k|07) - (k&07);
 				k++;
 			}
-			perm[i*8+j] = k;
+			perm[i*8+j] = (unsigned char)k;
 		}
 	}
 #ifdef DEBUG
@@ -877,7 +877,7 @@
 			for (i = 0; i < 32; i++)
 				tmp32[i] = 0;
 			for (i = 0; i < 4; i++)
-				tmp32[4 * tableno + i] = (k >> i) & 01;
+				tmp32[4 * tableno + i] = (unsigned char)(k >> i) & 01;
 			k = 0;
 			for (i = 24; --i >= 0; )
 				k = (k<<1) | tmp32[perm[i]-1];
Index: missing/vsnprintf.c
===================================================================
--- missing/vsnprintf.c	(revision 22913)
+++ missing/vsnprintf.c	(revision 22914)
@@ -240,7 +240,7 @@
 	register size_t len;
 	register const char *p;
 	register struct __siov *iov;
-	register int w;
+	register size_t w;
 
 	if ((len = uio->uio_resid) == 0)
 		return (0);
@@ -347,7 +347,7 @@
  */
 #define	to_digit(c)	((c) - '0')
 #define is_digit(c)	((unsigned)to_digit(c) <= 9)
-#define	to_char(n)	((n) + '0')
+#define	to_char(n)	(char)((n) + '0')
 
 #ifdef _HAVE_SANE_QUAD_
 /*

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

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