Nope, here are the errors with the patched 'eval.c':

/usr/bin/c89 -g  -Wnowarn -I. -I.  -c eval.c
            SETUP_ARGS(node->nd_args);
            ^
"/home/ruby-1.8.2/eval.c", line 3217: error(252): argument of type
          "void *" is incompatible with parameter of type "VALUE"


            SETUP_ARGS(node->nd_args);
            ^
"/home/ruby-1.8.2/eval.c", line 3217: error(250): too few arguments in
          function call


            SETUP_ARGS(node->nd_args);
            ^
"/home/ruby-1.8.2/eval.c", line 3217: error(112): expected a ")"


            SETUP_ARGS(node->nd_args);
            ^
"/home/ruby-1.8.2/eval.c", line 3217: error(112): expected a ")"


            SETUP_ARGS(node->nd_args);
            ^
"/home/ruby-1.8.2/eval.c", line 3217: error(611): a value of type
          "NODE *" cannot be assigned to an entity of type "VALUE *"


            SETUP_ARGS(node->nd_args);
            ^
"/home/ruby-1.8.2/eval.c", line 3235: error(252): argument of type
          "void *" is incompatible with parameter of type "VALUE"


            SETUP_ARGS(node->nd_args);
            ^
"/home/ruby-1.8.2/eval.c", line 3235: error(250): too few arguments in
          function call


            SETUP_ARGS(node->nd_args);
            ^
"/home/ruby-1.8.2/eval.c", line 3235: error(112): expected a ")"


            SETUP_ARGS(node->nd_args);
            ^
"/home/ruby-1.8.2/eval.c", line 3235: error(112): expected a ")"


            SETUP_ARGS(node->nd_args);
            ^
"/home/ruby-1.8.2/eval.c", line 3235: error(611): a value of type
          "NODE *" cannot be assigned to an entity of type "VALUE *"


            SETUP_ARGS(node->nd_args);
            ^
"/home/ruby-1.8.2/eval.c", line 3250: error(252): argument of type
          "void *" is incompatible with parameter of type "VALUE"


            SETUP_ARGS(node->nd_args);
            ^
"/home/ruby-1.8.2/eval.c", line 3250: error(250): too few arguments in
          function call


            SETUP_ARGS(node->nd_args);
            ^
"/home/ruby-1.8.2/eval.c", line 3250: error(112): expected a ")"


            SETUP_ARGS(node->nd_args);
            ^
"/home/ruby-1.8.2/eval.c", line 3250: error(112): expected a ")"


            SETUP_ARGS(node->nd_args);
            ^
"/home/ruby-1.8.2/eval.c", line 3250: error(611): a value of type
          "NODE *" cannot be assigned to an entity of type "VALUE *"


                SETUP_ARGS(node->nd_args);
                ^
"/home/ruby-1.8.2/eval.c", line 3286: error(252): argument of type
          "void *" is incompatible with parameter of type "VALUE"


                SETUP_ARGS(node->nd_args);
                ^
"/home/ruby-1.8.2/eval.c", line 3286: error(250): too few arguments in
          function call


                SETUP_ARGS(node->nd_args);
                ^
"/home/ruby-1.8.2/eval.c", line 3286: error(112): expected a ")"


                SETUP_ARGS(node->nd_args);
                ^
"/home/ruby-1.8.2/eval.c", line 3286: error(112): expected a ")"


                SETUP_ARGS(node->nd_args);
                ^
"/home/ruby-1.8.2/eval.c", line 3286: error(611): a value of type
          "NODE *" cannot be assigned to an entity of type "VALUE *"


            SETUP_ARGS0(node->nd_args->nd_next, node->nd_args->nd_alen
- 1);
            ^
"/home/ruby-1.8.2/eval.c", line 3343: error(252): argument of type
          "void *" is incompatible with parameter of type "VALUE"


            SETUP_ARGS0(node->nd_args->nd_next, node->nd_args->nd_alen
- 1);
            ^
"/home/ruby-1.8.2/eval.c", line 3343: error(250): too few arguments in
          function call


            SETUP_ARGS0(node->nd_args->nd_next, node->nd_args->nd_alen
- 1);
            ^
"/home/ruby-1.8.2/eval.c", line 3343: error(112): expected a ")"


            SETUP_ARGS0(node->nd_args->nd_next, node->nd_args->nd_alen
- 1);
            ^
"/home/ruby-1.8.2/eval.c", line 3343: error(112): expected a ")"


            SETUP_ARGS0(node->nd_args->nd_next, node->nd_args->nd_alen
- 1);
            ^
"/home/ruby-1.8.2/eval.c", line 3343: error(611): a value of type
          "NODE *" cannot be assigned to an entity of type "VALUE *"


        VALUE *vars = TMP_ALLOC(node->nd_tbl[0]+1);
                      ^
"/home/ruby-1.8.2/eval.c", line 3929: error(252): argument of type
          "void *" is incompatible with parameter of type "VALUE"


        VALUE *vars = TMP_ALLOC(node->nd_tbl[0]+1);
                                                  ^
"/home/ruby-1.8.2/eval.c", line 3929: error(250): too few arguments in
          function call


        VALUE *vars = TMP_ALLOC(node->nd_tbl[0]+1);
                                                  ^
"/home/ruby-1.8.2/eval.c", line 3929: error(112): expected a ")"


        VALUE *vars = TMP_ALLOC(node->nd_tbl[0]+1);
                                                  ^
"/home/ruby-1.8.2/eval.c", line 3929: error(112): expected a ")"


        VALUE *vars = TMP_ALLOC(node->nd_tbl[0]+1);
                      ^
"/home/ruby-1.8.2/eval.c", line 3929: error(232): a value of type
          "NODE *" cannot be used to initialize an entity of type
"VALUE *"


      SETUP_ARGS(node->nd_args);
      ^
"/home/ruby-1.8.2/eval.c", line 5084: error(252): argument of type
          "void *" is incompatible with parameter of type "VALUE"


      SETUP_ARGS(node->nd_args);
      ^
"/home/ruby-1.8.2/eval.c", line 5084: error(250): too few arguments in
          function call


      SETUP_ARGS(node->nd_args);
      ^
"/home/ruby-1.8.2/eval.c", line 5084: error(112): expected a ")"


      SETUP_ARGS(node->nd_args);
      ^
"/home/ruby-1.8.2/eval.c", line 5084: error(112): expected a ")"


      SETUP_ARGS(node->nd_args);
      ^
"/home/ruby-1.8.2/eval.c", line 5084: error(611): a value of type
          "NODE *" cannot be assigned to an entity of type "VALUE *"


                local_vars = TMP_ALLOC(body->nd_tbl[0]+1);
                             ^
"/home/ruby-1.8.2/eval.c", line 5574: error(252): argument of type
          "void *" is incompatible with parameter of type "VALUE"


                local_vars = TMP_ALLOC(body->nd_tbl[0]+1);
                                                         ^
"/home/ruby-1.8.2/eval.c", line 5574: error(250): too few arguments in
          function call


                local_vars = TMP_ALLOC(body->nd_tbl[0]+1);
                                                         ^
"/home/ruby-1.8.2/eval.c", line 5574: error(112): expected a ")"


                local_vars = TMP_ALLOC(body->nd_tbl[0]+1);
                                                         ^
"/home/ruby-1.8.2/eval.c", line 5574: error(112): expected a ")"


                local_vars = TMP_ALLOC(body->nd_tbl[0]+1);
                           ^
"/home/ruby-1.8.2/eval.c", line 5574: error(611): a value of type
          "NODE *" cannot be assigned to an entity of type "VALUE *"


40 errors detected in the compilation of "eval.c".
c89: /usr/cmplr/ccombe exited, returning 2.
*** Error code 1

Stop.