The Delphi Bug List

Entry No.
471
コンパイラ - コンパイル出来ない
USEしているユニットが最新であることを確実にする為に再帰コンパイルを実行すると、コンパイラがループに陥り、最終的にスタックオーバーフローを起こすことがある
1.02 2.01 3.0 3.01 3.02 4.0 4.01 4.02 4.03 5.0 5.01 6.0 6.01 6.02 Kylix 1.0
Unknown Unknown Unknown Unknown Exists Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
解説
Reported by Bevan Arps
ユニットのファイル名とその先頭の unit 宣言とが一致しない場合、通常は "モジュールヘッダが無いか、不正です" というメッセージを受け取ります。

USEしているユニットが最新であることを確実にする為に再帰コンパイルを実行すると、時々コンパイラはその状況を認識せず、代わりにループに陥り、最終的にスタックオーバーフローを発生させます。

私は500以上のファイルを含む大きなパッケージでこの状況に出くわし、単純なテストケースでは再現させられませんでした。しかし、元の状況では必要に応じて再現可能でした。
解決策 / 回避方法
回避方法:コンパイル中にスタックオーバーフローが発生したら、コンパイル状況のウィンドウに最後に表示された数ファイルを見て、ヘッダが一致しているかどうかを確認して下さい。
ユーザーからのコメント
Daren Scot Wilson
12 Jul 2001  05:27 PM GMT
間違いなく Delphi 5 はこの問題を含んでいます。
Latest update of this entry: 1998-10-06
本家 The Delphi Bug List のエントリーはこちら
The Delphi Bug List 日本語訳 へ