アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
計算機科学者とは、壊れていないものを修理する人々のことである
ソースコードの書き方にも問題がある. (スコア:4, 興味深い)
grubがコンパイラのバグという地雷を踏んだ理由の一つとして
そのソースコードの書き方にも原因があると思います.
grubの該当するソースコードは,関数の中で関数を定義するという妙な記述をしています.
これは,一般的なC言語の文法上はエラーになるので,めったに利用されない
Re:ソースコードの書き方にも問題がある. (スコア:3, 興味深い)
それはそれで問題あると思うのですが、IA32プラットフォームでそういうのをコンパイルしたとき、スタック上に実行コードを乗っけて、そこに分岐する、という野蛮な実装は他の CPU ではどういうコードに落ちるんでしょう。
(私の思い違いでなければ)IA64では、他のまっとうな高機能 CPU と同様にテキストセグメントとデータセグメントが明確に分かれていてスタック上の番地にジャンプするなんてことはできないと思うのですが。
もしかして gcc の IA32 への対応のしかたが悪いだけ?
Re:ソースコードの書き方にも問題がある. (スコア:0)
Re:ソースコードの書き方にも問題がある. (スコア:0)
> コンパイルしたとき、スタック上に実行コードを乗っけて、そこに分岐する、
> という野蛮な実装は他の CPU ではどういうコードに落ちるんでしょう。
関数の中で関数を定義しても、スタック上に実行コードなんて生成されましたっけ?。単にテキストセグメントに展開されて、関数のエントリの
Re:ソースコードの書き方にも問題がある. (スコア:0)
{
void inner() {}
printf("%p\n", inner);
}
コンパイルしてアセンブリ見てみ。
Re:ソースコードの書き方にも問題がある. (スコア:0)
プラスモデしてしまうのだな。