えぐち@エスアンドイー です。

>>> In message [ruby-list:16080] Re: Ruby 1.3.7
    On Wed, 11 Aug 1999 22:11:19 +0900, EGUCHI Osamu <eguchi / shizuokanet.ne.jp> said:

eguchi> えぐち@エスアンドイー です。
...
eguchi> SunOS-4.1.4(JLE) 付属の cc でも同様の問題がありました。
eguchi> 「構造体の初期化は、いかん」といった内容だった気がします。

よぉく観てみると、違う場所(あたらしいとこ)でした。

----------------------------------
% ident ../ruby/eval.c
../ruby/eval.c:
     $Author: matz $
     $Date: 1999/08/11 07:23:55 $

% make
cc -g -I. -I../ruby -I/usr/local/include  -c ../ruby/eval.c
"../ruby/eval.c", line 2216: no automatic aggregate initialization
"../ruby/eval.c", line 2216: operands of = have incompatible types
"../ruby/eval.c", line 2854: no automatic aggregate initialization
"../ruby/eval.c", line 2854: operands of = have incompatible types
"../ruby/eval.c", line 4395: no automatic aggregate initialization
"../ruby/eval.c", line 4395: operands of = have incompatible types
make: *** [eval.o] Error 1
----------------------------------

微妙なところで、自身が今一歩ないのですが、パッチ作りました。
# volatile が必要?

	えぐち

Index: eval.c =================================================================== RCS file: /usr/home/eguchi/cvs.netlab.co.jp/ruby/eval.c,v retrieving revision 1.1.1.3.2.32 diff -d -u -r1.1.1.3.2.32 eval.c --- eval.c 1999/08/11 07:23:55 1.1.1.3.2.32 +++ eval.c 1999/08/11 14:14:18 @@ -2213,7 +2213,8 @@ case NODE_SCOPE: { - struct FRAME frame = *ruby_frame; + struct FRAME frame; + frame = *ruby_frame; frame.tmp = ruby_frame; ruby_frame = &frame; @@ -2851,12 +2852,13 @@ NODE * volatile node; { int state; - struct FRAME frame = *ruby_frame; + struct FRAME frame; VALUE result; /* OK */ char *file = ruby_sourcefile; int line = ruby_sourceline; TMP_PROTECT; + frame = *ruby_frame; frame.tmp = ruby_frame; ruby_frame = &frame; @@ -4392,14 +4394,16 @@ { if (ruby_block->flags & BLOCK_DYNAMIC) { struct BLOCK * volatile old_block = ruby_block; - struct BLOCK block = *ruby_block; - volatile VALUE cbase = ruby_block->frame.cbase; + struct BLOCK block; + volatile VALUE cbase; /* cbase should be pointed from volatile local variable */ /* to be protected from GC. */ VALUE result; int state; /* copy the block to avoid modifying global data. */ + block = *ruby_block; + cbase = ruby_block->frame.cbase; block.frame.cbase = ruby_frame->cbase; ruby_block = &block;