[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00209] Re: Warning




古川竜雄です。

鵜川さん> 動作内容に関係ありませんが、jserverに関して、こちらの環境
鵜川さん> (Solaris2.4 + gcc-2.95.1)で出力されるwarningの一部を取りまし
鵜川さん> た。

ありがとうございます。早速反映させよう…と思ったのですが、

鵜川さん> -    =select(nofile,ready_socks,dummy1_socks,dummy2_socks,0))==-1){
鵜川さん> +    =select(nofile,(fd_set *)ready_socks,(fd_set *)dummy1_socks,(fd_

fd_set があるかないかは OS に依存する(かもしれない)ので、このままだと
なにかトラブルが起こりそうな予感がします。

鵜川さん> -    setsockopt(sock_d_in, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(int));
鵜川さん> +    setsockopt(sock_d_in, SOL_SOCKET, SO_REUSEADDR, (const char *)&on, sizeof(i

const は K&R になかった(と思う)ので、このままだと K&R でエラーが出てし
まうと思います。(char *)&on でどうでしょうか?

# 「Warning を消す」という作業は、本来はすべきものなのですがポータビリ
# ティのことを考えると気軽に cast できなかったりするので「1.1.1に対し
# ては」Warning を消すというだけの作業は避けたいと思うようになりました。
# 単純に足すだけでいいのであれば全然問題ないと思うのですが。


鵜川さん> その他現在出力されるwarningとしては、
鵜川さん> NULL(ポインタ)とintを比べている旨のwarningがわんさか出ます。

そうですね。これは私も気がついていました。どうも Wnn は NULL が 0 と宣
言されていた OS で開発されたようですね。

鵜川さん> ex)
鵜川さん> daibn_kai.c: In function `get_status':
鵜川さん> daibn_kai.c:238: warning: comparison between pointer and integer

これのコードは

            (fzkchar == NULL || *fzkchar == NULL) &&

で、2番目の式 *fzkchar == NULL で警告が出ています。fzkchar は

    w_char		*fzkchar;	/* 前端の付属語文字列 */

なので、この文は確かにおかしいです。多分

    *fzkchar == 0

のつもりで使っているのだと思うのですが、確証が得られないのでそのままに
してました。確証を得た方、メール待ってます! (爆)


というわけで、後向きで申し訳ありませんが、ここまできているので何とかエ
ラーをなくしてリリースにこぎつけたいと思っています。そのためちょっと慎
重になってますが許して下さい。

-- 
古川竜雄 (frkwtto@osk3.3web.ne.jp) / FreeWnn Project