アカウント名:
パスワード:
あるコンパイラで10行~20行程度のごく短いソースを喰わせると正常動作しないオブジェクトを吐き出すという現象に出くわしたことがあるオプティマイズの処理等でこんがらがってしまったのだと思うけど、単純なものでのテストもしろという教訓だよ
それは本当にwell-formedでかつundefined/unspecified/implementation-definedな動作に依存しないソースコードですか?
それは本当にwell-formedでかつundefined/unspecified/implementation-definedな動作に依存しないソースコードですそのソースコードの後にまったく無関係な処理を追加してコードサイズを水増しするとちゃんと動くようになるのだから世の中のコンパイラがすべてwell-formedでかつundefined/unspecified/implementation-definedだと思ってはいけないマイナーなプロセッサのマイナーなベンダーのコンパイラのバグを回避して使うのも組込系の技能のうち#オプティマイズ・レベルを上げると演算子の優先順位と結合規則を誤ってコードを生成する組込プロセッサのCコンパイラだって普通に存在する
コードサイズ水増しで意図どおりに動くってオーバーランした場合の典型挙動なんだけど……(増えた領域を踏んで突き抜けが止まったり、増えた分、致命的な部分までの距離が稼げたり)
コンパイラのバグで振り回されるケースがあるのには同意しとくけど。自分もマクロの挙動が怪しいやつは見た事ある。
結局、組み込み系で最後に信じられるのはアセンブリコードと実機での動作だけ。コンパイラの最適化やハードウェアのデータシートを盲目的に信じると大変痛い目に遭うのだ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり
先日の (スコア:1)
Re: (スコア:0)
あるコンパイラで10行~20行程度のごく短いソースを喰わせると正常動作しないオブジェクトを吐き出すという現象に出くわしたことがある
オプティマイズの処理等でこんがらがってしまったのだと思うけど、単純なものでのテストもしろという教訓だよ
Re: (スコア:0)
それは本当にwell-formedでかつundefined/unspecified/implementation-definedな動作に依存しないソースコードですか?
Re:先日の (スコア:0)
それは本当にwell-formedでかつundefined/unspecified/implementation-definedな動作に依存しないソースコードです
そのソースコードの後にまったく無関係な処理を追加してコードサイズを水増しするとちゃんと動くようになるのだから
世の中のコンパイラがすべてwell-formedでかつundefined/unspecified/implementation-definedだと思ってはいけない
マイナーなプロセッサのマイナーなベンダーのコンパイラのバグを回避して使うのも組込系の技能のうち
#オプティマイズ・レベルを上げると演算子の優先順位と結合規則を誤ってコードを生成する組込プロセッサのCコンパイラだって普通に存在する
Re: (スコア:0)
コードサイズ水増しで意図どおりに動くってオーバーランした場合の典型挙動なんだけど……
(増えた領域を踏んで突き抜けが止まったり、増えた分、致命的な部分までの距離が稼げたり)
コンパイラのバグで振り回されるケースがあるのには同意しとくけど。
自分もマクロの挙動が怪しいやつは見た事ある。
Re: (スコア:0)
結局、組み込み系で最後に信じられるのはアセンブリコードと実機での動作だけ。
コンパイラの最適化やハードウェアのデータシートを盲目的に信じると大変痛い目に遭うのだ。