まつもと ゆきひろです

In message "[ruby-ext:02056] Re: ALLOC_N のバグ?"
    on 02/01/14, ABE Shigeru <shiger-a / nifty.com> writes:

|WATANABE Hirofumi <eban / os.rim.or.jp> wrote:
|>> vが宙に浮いてます。
|>>     VALUE volatile v;
|>> でどうでしょう?
|
| それでうまくいきました。
| このような現象が起こるということは、VALUE 型の変数には volatile を付け
|ておいた方がいいということなのでしょうか? 裏でどのような事が起こってい
|るのか、ちょっとわからないです…。レジスタに変数が割り当てられるのを防止
|するということなのでしょうか。

つまり、vはもう登場しないので、賢いコンパイラはvの領域を再利
用してしまう(のでprotectされない)のです。それをさける場合に
はvolatileが必要です。