From: Tomoyuki Chikanaga Date: 2011-01-26T10:57:08+09:00 Subject: [ruby-dev:43115] [Ruby 1.9-Bug#4322] valgrind report error for uncaught throw チケット #4322 が更新されました。 (by Tomoyuki Chikanaga) はい --with-valgrind は付けてます。 すみません、書き忘れてましたが optflags=-O3 を付けてビルドした時に発生します(gcc 4.3.3)。 実はテストケースはソースから逆算して作ったので(#4321 も同様)、以下の RB_GC_GUARD 追加で直ることを確認しています。 すぐ修正するつもりだったのですけど前準備に手間取って一晩寝かせてしまいました。 diff --git a/vm_eval.c b/vm_eval.c index c67e54c..0dcbafa 100644 --- a/vm_eval.c +++ b/vm_eval.c @@ -1438,6 +1438,7 @@ rb_throw_obj(VALUE tag, VALUE value) } if (!tt) { VALUE desc = rb_inspect(tag); + RB_GC_GUARD(desc); rb_raise(rb_eArgError, "uncaught throw %s", RSTRING_PTR(desc)); } rb_trap_restore_mask(); ---------------------------------------- http://redmine.ruby-lang.org/issues/show/4322 ---------------------------------------- http://redmine.ruby-lang.org