From: Katsuyuki Komatsu Date: 1999-09-23T19:29:41+09:00 Subject: [ruby-dev:7907] rb2c-0.5.6 小松です。 rb2c-0.5.6ですが、sample/fib.rbを変換すると、 VALUE local_vars[0]; や static char *rb2c_argv[0]; (rb2c.rbを使った場合) といったコードが生成されます。しかし、[0]が通るのはgccとPortable C ぐらいなので、とりあえず[1]になるようにしてみました。 diff -rup rb2c-0.5.6.orig/src/compile.rb rb2c-0.5.6/src/compile.rb --- rb2c-0.5.6.orig/src/compile.rb Thu Sep 16 18:10:35 1999 +++ rb2c-0.5.6/src/compile.rb Wed Sep 21 23:02:03 1999 @@ -217,7 +217,7 @@ static VALUE { VALUE result = Qnil;" if @local_tbl[0] > 0 || scopemode then o" - VALUE local_vars[#{@local_tbl[0]}]; + VALUE local_vars[#{if @local_tbl[0] > 0 then @local_tbl[0] else 1 end}]; {int i; for (i=0; i<#{@local_tbl[0]}; ++i) local_vars[i] = Qnil;} PUSH_SCOPE(); ruby_scope->local_vars = local_vars; @@ -1935,7 +1935,7 @@ static void init_sub() {" o<<" static int rb2c_argc = #{argc}; -static char *rb2c_argv[#{argc}]#{argvl}; +static char *rb2c_argv[#{if argc > 0 then argc else 1 end}]#{argvl}; int main(int argc, char **argv) -- 小松克行 / Katsuyuki Komatsu