1. ホーム
  2. c++

[解決済み] コンパイラの内部エラーメッセージの意味と対処方法について教えてください。

2022-02-16 20:34:17

質問事項

MPICHとNAG Cライブラリ(私は乱数生成にNAGを使用しています)を使用する私のC++プログラムをpgCCコンパイラでコンパイルしようとしていました。

しかし、コンパイラで以下のようなエラーメッセージが表示されました。

PGCC-S-0000-Internal compiler error. linearize: bad ili #:       0 (mpisim.C: 225)
PGCC-S-0000-Internal compiler error. gen_aili: unrec. ili opcode:       0 (mpisim.C: 225)
PGCC-S-0000-Internal compiler error. linearize: bad ili #:       0 (mpisim.C: 266)
PGCC-S-0000-Internal compiler error. gen_aili: unrec. ili opcode:       0 (mpisim.C: 266)
PGCC/x86 Linux 12.4-0: compilation completed with severe errors

これらのメッセージが何を指しているのか、さっぱりわかりません。どなたか意味を説明していただけませんか?

問題のある行の位置を把握する方法はありますか?また 255(mpisim.C: 225) は、私のコード内の行番号を示していますか?

どのように解決するのですか?

コンパイラの内部エラーは、コンパイラのバグです。コンパイラベンダーに問題を提起する以外、できることはあまりありません。

通常、ICEは不正なコードをコンパイルしようとしたときに起こりますが、コンパイラが有効なC++を詰まらせることも十分考えられます。この言語は非常に複雑で、あらゆる機能をあらゆる組み合わせでテストすることは困難です。

もし、クラッシュの原因となっているコードの行がわかったら、よりシンプルな表現に書き換えてみてください(たとえば、局所変数や型定義を追加するなど)。