アカウント名:
パスワード:
警告を無視しちゃいかんという教訓を得たと。
こんな感じに、if分を一行にまとめてしまえば、こんな不具合出なかった気がします。
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) goto fail;if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail;if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0) goto fail;
一行が長くなるのを嫌ったのかな?
unreachable codeの検出は、停止性問題と同じなんで、goto文みたいな自由度の高い構文ではうまく動かないんじゃないのかね。それ以前にgccもclangもgotoの警告はやる気ないから
XCodeとかいうゴミだとどうかわからないけど、AppCodeだと普通に警告されたよ
> unreachable codeの検出は、停止性問題と同じなんで
違いますね
到達する可能性があるか、全くないかの判定だけすればいいので
gotoの直後のラベルの無いステートメントに到達しないことがわからないなんて停止性云々以前にコンパイラのフロー解析がダメダメですね。
停止問題を起こすにはwhile文1個で十分なのにちょっと何言ってるのかわからない。それどころかライスの定理によれば「常に1を返す」とか「常に0を返す」のような自明なプログラム以外はすべて決定不能だ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人
unreachable codeの警告は無視されたのか (スコア:0)
警告を無視しちゃいかんという教訓を得たと。
こんな感じに、if分を一行にまとめてしまえば、こんな不具合出なかった気がします。
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) goto fail;
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail;
if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0) goto fail;
一行が長くなるのを嫌ったのかな?
Re:unreachable codeの警告は無視されたのか (スコア:1)
unreachable codeの検出は、停止性問題と同じなんで、goto文みたいな自由度の高い構文ではうまく動かないんじゃないのかね。
それ以前にgccもclangもgotoの警告はやる気ないから
Re: (スコア:0)
XCodeとかいうゴミだとどうかわからないけど、AppCodeだと普通に警告されたよ
Re: (スコア:0)
> unreachable codeの検出は、停止性問題と同じなんで
違いますね
到達する可能性があるか、全くないかの判定だけすればいいので
Re: (スコア:0)
gotoの直後のラベルの無いステートメントに到達しないことがわからないなんて
停止性云々以前にコンパイラのフロー解析がダメダメですね。
Re: (スコア:0)
停止問題を起こすにはwhile文1個で十分なのにちょっと何言ってるのかわからない。
それどころかライスの定理によれば「常に1を返す」とか「常に0を返す」のような自明なプログラム以外はすべて決定不能だ。