volatileって何だっけ?
re.cを-Wallオプション付きでコンパイルすると、以下のsave_strが未使用という警告が出た。最初の行を削ると、何か問題が起きるのだろうか? 頭が悪くて、volatileの意味も忘れてしまった。
VALUE rb_reg_regcomp(VALUE str) { volatile VALUE save_str = str; if (reg_cache && RREGEXP(reg_cache)->len == RSTRING(str)->len && case_cache == ruby_ignorecase && kcode_cache == reg_kcode && memcmp(RREGEXP(reg_cache)->str, RSTRING(str)->ptr, RSTRING(str)->len) == 0) return reg_cache; case_cache = ruby_ignorecase; kcode_cache = reg_kcode; return reg_cache = rb_reg_new(RSTRING(str)->ptr, RSTRING(str)->len, ruby_ignorecase); }