Hi,

At Sat, 28 Aug 2004 03:43:39 +0900,
Bil Kleb wrote in [ruby-talk:110682]:
> During compile of the 08-26-2004 stable snapshot, I get a warning:
> 
>   gcc -g -O2   -I. -I.  -c eval.c
>   eval.c: In function `massign':
>   eval.c:4912: warning: cast from pointer to integer of different size
> 
> For convenience,
> 
>   4907            assign(self, list->nd_head, RARRAY(val)->ptr[i], pcall);
>   4908            list = list->nd_next;
>   4909        }
>   4910        if (pcall && list) goto arg_error;
>   4911        if (node->nd_args) {
>   4912            if ((int)(node->nd_args) == -1) {
>   4913                /* no check for mere `*' */
>   4914            }
>   4915            else if (!list && i<len) {
>   4916                assign(self, node->nd_args, rb_ary_new4(len-i, RARRAY(val)->ptr+i), pcall);

I think that it is fixed in CVS already.  This is the backport.


Index: eval.c =================================================================== RCS file: /cvs/ruby/src/ruby/eval.c,v retrieving revision 1.616.2.44 diff -U2 -p -d -r1.616.2.44 eval.c --- eval.c 25 Aug 2004 19:39:14 -0000 1.616.2.44 +++ eval.c 28 Aug 2004 02:22:13 -0000 @@ -4910,5 +4910,5 @@ massign(self, node, val, pcall) if (pcall && list) goto arg_error; if (node->nd_args) { - if ((int)(node->nd_args) == -1) { + if ((long)(node->nd_args) == -1) { /* no check for mere `*' */ } @@ -5611,5 +5611,5 @@ rb_call0(klass, recv, id, oid, argc, arg argc, i); } - if ((int)node->nd_rest == -1) { + if ((long)node->nd_rest == -1) { int opt = i; NODE *optnode = node->nd_opt; @@ -5646,5 +5646,5 @@ rb_call0(klass, recv, id, oid, argc, arg } local_vars = ruby_scope->local_vars; - if ((int)node->nd_rest >= 0) { + if ((long)node->nd_rest >= 0) { VALUE v;
-- Nobu Nakada