From: nobu.nakada@... Date: 2002-09-25T23:51:55+09:00 Subject: [ruby-dev:18373] Re: compile with -Wall なかだです。 At Tue, 24 Sep 2002 14:49:34 +0900, Yukihiro Matsumoto wrote: > |> parse.yを-Wallでコンパイルしたら結構いろいろ警告が出たので確認 > | > |他のも確認してみました。ほとんどは条件式に代入を直接使ってると > |か、使用してない変数/関数というものですが、いくつかまずそうな点 > |も。 > > 条件式の代入は私の趣味です。-Wallについてはずいぶん前から気 > づいてますが、gccのせいで趣味を変えるのはしのびない。 まぁ、たまたま-Wallを付けてみたらちょっとあやしげなところが見付 かったので、ついでにやってみただけで、私はとくにこだわりがある わけでもないので。gccのスタイルに関してはほっときましょう。 > |* dir.c (glob_helper): "**"で再帰中に例外が起きると未初期化の > | dirpでclosedir()してしまう > | > |* eval.c (call_trace_func, rb_eval, rb_call0): EXEC_TAG()で復帰 > | するはずの変数がvolatileになっていない > | > |* eval.c (eval, rb_thread_schedule, rb_thread_start_0): 上と同 > | 様(ただし、頻繁に使われている変数なのであまりvolatileにした > | くない) > | > | *(volatile VALUE *)&value = value;って効果あるもんでしょうか。 > | > |* regex.c (re_compile_pattern): おそらくplain charからの暗黙の > | 型変換は危険 > > これらについても直してくださったのでしょうか(そのようですね)。 > コミットしてください。でも、条件式の部分はなあ。 volatileについては、少なくともgccとvcでは、setjmp()を特別扱いし ていて必須ではないようです。まぁ元もとi86ではレジスタが少ないの で差はないかも知れませんが、RISC系などが気になります。これはも う少し調べてからのほうがいいかも知れません。 てことでいくと、この4点かな。 * dir.c (glob_helper): must not closedir() when exception raised while globbing "**". * marshal.c (w_uclass): unused variable. * re.c (match_clone): unused. * regex.c (re_compile_pattern): get rid of implicit promotion from plain char to int. あ、あとはkeywordsの{}か。これはたぶん本来囲むべきものだと思う んですが。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦