まつもと ゆきひろです

In message "[ruby-list:6043] Re: ruby 1.1b6 & gtk module"
    on 98/01/27, Yukihiro Matsumoto <matz / netlab.co.jp> writes:

|うちでも再現しました.gccのバージョンもおんなじです.で,現
|象としてはローカル変数に格納されたポインタがスタックにもレジ
|スタにも積まれていないので,マークしそこねてしまい,開放され
|てしまうというものです.原因は不明ですが,オプティマイザのバ
|グであることを希望しています.とりあえず,しばらくはデフォル
|トの-O2以下でお使い下さい.

とりあえずwork aroundです.

diff -u -1 -r1.1.1.2.2.3 ruby.h
--- ruby.h	1998/01/22 10:07:53	1.1.1.2.2.3
+++ ruby.h	1998/01/28 07:37:37
@@ -171,3 +171,3 @@
 VALUE rb_newobj _((void));
-#define NEWOBJ(obj,type) type *obj = (type*)rb_newobj()
+#define NEWOBJ(obj,type) type * volatile obj = (type*)rb_newobj()
 #define OBJSETUP(obj,c,t) {\