インテル® Fortran コンパイラー XE 13.1 ユーザー・リファレンス・ガイド

ビルド処理中に発生するエラーについて

インテル® Fortran コンパイラーは、ソースプログラムに含まれる構文エラーと言語規則違反を識別します。

コンパイラー診断メッセージ

ソースファイルの処理中に報告された診断結果を示すメッセージです。診断メッセージは、通常、エラーの原因を判断し、修正するために十分な情報を提供します。通常、メッセージの形式は次のとおりです。

filename(linenum): severity #error number: message

filename

現在処理しているソースファイルの名前です。

linenum

問題が検出されたソース行番号です。

severity

診断メッセージの重要度 (警告、エラー、または致命的なエラー) を示します。

message

問題の説明です。

次の例は、この形式とメッセージテキストが示されたエラーメッセージです。

echar.for(7): エラー #6321: 終了していないブロックが存在しています。
       DO I=1,5
-------^

ポインター (---^) は、プログラムのソース行でエラーが発見された場所を示します。この場合は、END DO 文が省略されています。

コマンドラインで実行される受け渡しを表示するには、-watch (Linux* および OS X*) または /watch (Windows*) を指定します。

明示的インターフェイスが提供されていないルーチン間で、コンパイル時のプロシージャー・インターフェイス・チェックを実行することができます。そのためには、コンパイルされる各ルーチンでインターフェイスを持つモジュールを生成 (-gen-interfaces オプション (Linux* および OS X*) または /gen-interfaces オプションを (Windows*) 使用) して、暗黙的インターフェイスをチェック (-warn interfaces オプション (Linux* および OS X*) または /warn:interfaces オプション (Windows*) を使用) します。

コンパイラー診断メッセージ (警告メッセージなど) の制御

いくつかのコンパイラー・オプションを使用して、コンパイラーにより発行される診断メッセージを制御することができます。例えば、-WB コンパイラー・オプション (Linux* および OS X*) または /WB コンパイラー・オプション (Windows*) は、コンパイル時の上下限チェック違反を警告として扱います。 コンパイラー診断メッセージ (警告メッセージなど) を制御するには、-warn (Linux* および OS X*) または /warn (Windows*) を使用します。 -warn [keyword] オプション (Linux* および OS X*) または /warn:keyword オプション (Windows*) は、コンパイラーにより発行される警告を制御し、幅広い値をサポートします。 その中のいくつかを次に紹介します。

[no]alignments -- 自然にアライメントされないデータに対する警告を発行するかどうかを指定します。

[no]declarations -- 未宣言のシンボルに対する警告を発行するかどうかを指定します。

[no]errors -- 警告をエラーとして扱うかどうかを指定します。

[no]general -- 警告メッセージおよび情報メッセージをコンパイラーで発行するかどうかを指定します。

[no]interfaces -- 呼び出した全ルーチンおよび起動した全関数のインターフェイスについての警告をコンパイラーで発行するかどうかを指定します。

[no]stderrors -- Fortran 標準に違反する警告をエラーとして扱うかどうかを指定します。

[no]truncated_source -- ソースが固定形式ソースファイルの最大のカラム幅を超えた場合、警告を発行するかどうかを指定します。

詳細は、warn コンパイラー・オプションを参照してください。

各種 -diag (Linux* および OS X*) コンパイラー・オプションまたは /Qdiag (Windows*) コンパイラー・オプションを使用して、診断情報の表示を制御することもできます。 このコンパイラー・オプションは、複数の引数や値を受け付けるため、表示される診断メッセージおよびレポートを幅広く制御することができます。

最も一般的なものは以下のとおりです。

Linux* および OS X*

Windows*

説明

-diag-enable list

/Qdiag-enable:list

診断メッセージまたはメッセージのグループを有効にします。

-diag-disable list

/Qdiag-disable:list

診断メッセージまたはメッセージのグループを無効にします。

-diag-warning list

/Qdiag-warning:list

診断を警告に変更するようにコンパイラーに指示します。

-diag-error list

/Qdiag-error:list

診断をエラーに変更するようにコンパイラーに指示します。

-diag-remark list

/Qdiag-remark:list

診断をリマーク (コメント) に変更するようにコンパイラーに指示します。

list 項目は、特定の診断 ID、warnremarkerror のいずれかのキーワード、または特定のグループを指定するキーワード (parvecdrivercpu-dispatchsv) です。 詳細は、-diag/Qdiag を参照してください。

また、次の関連オプションを使用できます。

Linux* および OS X*

Windows*

説明

-diag-dump

/Qdiag-dump

有効なすべての診断メッセージを出力して、コンパイルを停止するようにコンパイラーに指示します。

-diag-file[=file]

/Qdiag-file[:file]

診断結果をファイルに出力します。

-diag-file-append[=file]

/Qdiag-file-append[:file]

診断結果をファイルに追加します。

-diag-error-limit n

/Qdiag-error-limit:n

コンパイルを中断するまでに表示するエラー数を指定します。

リンカー診断エラー

リンカーにより、オブジェクト・モジュールのリンク時にエラーが検出されると、その原因と重要度に関するメッセージが表示されます。何らかのエラーが発生した場合、リンカーは実行ファイルを生成しません。リンカーメッセージは説明的な内容であるため、通常、追加情報がなくてもエラーを特定することができます。

コマンドライン上でリンカーに渡されるライブラリーを参照するには、-watch または /watch を指定します。

エラーの重要度レベル

コメントメッセージ

これらのメッセージは、コンパイルされる言語で有効ではあるものの、推奨されない使用方法を報告します。デフォルトでは、コンパイラーはコメントを表示します。-warn nousage オプション (Linux* および OS X*) または /warn:nousage オプション (Windows*) を使用して、コメントメッセージを抑止できます。

コメントメッセージが返されても、変換処理やリンク処理が終了することはなく、出力ファイルへの影響もありません。コメントメッセージとしては、例えば次のものがあります。

Null CASE construct (CASE 構文が NULL です)
The use of a non-integer DO loop variable or expression (整数以外の DO ループ変数または式を使用しています)
Terminating a DO loop with a statement other than CONTINUE or ENDDO (DO ループの終わりが CONTINUE または ENDDO 以外の文になっています)

警告メッセージ

これらのメッセージは、コンパイルされる言語で有効ではあるものの、何らかの問題がある使用方法を報告します。デフォルトでは、コンパイラーは警告を表示します。ただし、-nowarn オプションまたは /nowarn オプションを使用して、警告メッセージを抑止できます。 警告メッセージが表示されても、変換もリンクも停止されません。また、警告メッセージが表示されても出力ファイルは影響を受けません。警告メッセージの代表的なものは、次のとおりです。

constant truncated - precision too great (定数が切り捨てられています。精度が高すぎます)
non-blank characters beyond column 72 ignored (カラム 72 以降のブランクではない文字は無視されます)
Hollerith size exceeds that required by the context (Hollerith のサイズが、コンテキストで必要とされるサイズを超えています)

エラーメッセージ

これらのメッセージでは、Fortran の構文上またはセマンティクス上の使用の誤りを報告します。

エラーが発生すると、エラーを含むファイルのオブジェクト・コードは作成されず、リンクも行われませんが、ほかのエラーのスキャンは続行されます。次に、エラーメッセージの典型的な例をいくつか示します。

line exceeds 132 characters (行内の文字が 132 字を超えています。)
unbalanced parenthesis (括弧が一致しません。)
incomplete string (文字列が不完全です。)

致命的なエラー

致命的なメッセージは環境の問題を示します。致命的なエラー状態が発生すると、変換処理、アセンブリー処理、およびリンク処理は停止します。致命的なエラーによってコンパイルが終了した場合は、コンパイラーは標準のエラー出力に終了メッセージを表示します。致命的なエラーメッセージの代表的なものとしては、次のものがあります。

Disk is full, no space to write object file (ディスクが一杯で、オブジェクト・ファイルを書き込むためのスペースがありません。)
Too many segments, object format cannot support this many segments (セグメントが多すぎます。オブジェクト形式ではこのような多くのセグメントはサポートできません。)

コマンドラインの使用

コマンドラインを使用している場合は、メッセージが標準のエラー出力ファイルに書き込まれます。

コマンドラインを使用する場合:


このヘルプトピックについてのフィードバックを送信