0

かなり大規模なプロジェクト (> 750K 行) を delphi XE3 でコンパイルする (2009 年からのアップグレード)

次のエラーを取得する

[dcc32 致命的なエラー] MainForm.pas(3170): F2084 内部エラー: URW1147

この質問に似ていますが、コードのどこにもジェネリックが使用されていません。

ジェネリック配列の内部エラー

エラーはコード行に対応するのではなく、ファイルの最後に対応します。

つまり、「終わり」の後。

Google検索に続いて、「コードインラインコントロール」のすべての設定も試しましたが、喜びはありません.

どこから(他に)探し始めればよいかわからないので、知識に基づいたフィードバック(またはおそらく大げさな推測でさえ)をいただければ幸いです。

ここからの有用なフィードバックが期待されるまで、まだ QC レポートを提出していません。

ありがとう

4

1 に答える 1

1

上記の David の提案に従って、コードを一度に 1 セクションずつ削除することで、この問題を解決しました。

これが誰にとっても役立つ場合に備えて、解決策は次のとおりです...

数年前に削除され、より伝統的な手法を使用して置き換えられたと考えられていた「ジェネリック」コードの「残された」断片があったことが判明しました。

次のように定義された、リファクタリングされていない単一のローカル変数がありました。

var
  TestProc: TProc;

次のように割り当てられると、内部コンパイラ エラーがトリガーされます (ただし、問題のあるコード行の近くにはありません)。

TestProc := TestSuite.TestProcs[i].TestProc;

上記の配列要素 TestProcは object 型のプロシージャです

これは 2009 でコンパイル (および完全に動作) するため、以前に取り上げられなかったのですが、XE3 では内部コンパイラ エラーが発生します。

(オブジェクトのプロシージャへの) ローカル変数の宣言を修正すると、問題が修正されます。

于 2012-10-23T00:20:13.480 に答える