コンパイラーは C または C++ ソース・プログラムのコンパイル中にプログラミング・エラーを検出すると、標準エラー・デバイスに診断メッセージを発行し、該当するオプションが選択されている場合は、リスト表示ファイルに診断メッセージを発行します。
この節では、コンパイラーがコンパイル・エラーの記述に使用するいくつかの基本的な報告メカニズムについても概説します。
コンパイラーは C または C++ 言語に特定のメッセージを発行します。
コンパイラー・オプション -qsrcmsgを指定しており、エラーが特定のコード行に該当する場合、再構成されたソース行または一部のソース行がエラー・メッセージと共に STDERR ファイルに組み込まれます。再構成されたソース行とは、すべてのマクロが展開された、プリプロセス済みのソース行です。
-qsourceコンパイラー・オプションを指定すると、コンパイラーはメッセージをソース・リストに入れます。例えば、コマンド行呼び出し xlc -qsource filename.c を使用してファイルをコンパイルすると、現行ディレクトリーで filename.lst と呼ばれるファイルが検出されます。
-qflag オプションまたは -wオプションを指定すると、重大度に応じて出される診断メッセージを制御することができます。 プログラム内に潜在する問題についての追加の情報メッセージを得るには、-qinfoオプションを使用します。
-qnosrcmsg オプションがアクティブ (これがデフォルト) の場合、診断メッセージのフォーマットは以下の通りです。
"file"、line line_number.column_number: 15dd-nnn (severity) text
ここで、
file | エラーのある C または C++ ソース・ファイルの名前です。 |
line_number | エラーの行番号です。 |
column_number | エラーの列番号です。 |
15 | コンパイラー製品 ID です。 |
dd | このメッセージを発行した XL C/C++ コンポーネントを示す 2 桁のコードです。dd は、以下の値のいずれかになります。
|
nnn | メッセージ番号です。 |
severity | エラーの重大度を表す文字です。 |
text | エラーを記述するメッセージです。 |
-qsrcmsg オプションが指定されている場合、診断メッセージのフォーマットは以下の通りです。
x - 15dd-nnn(severity) text.
ここで、x はフィンガー行のフィンガーを示す文字です。
XL C/C++ は診断メッセージに対して 5 段階の分類方式を使用します。重大度の各レベルは、コンパイラー応答と関連しています。すべてのエラーがコンパイルを停止するわけではありません。以下のテーブルは、重大度レベルの省略形とそのレベルに関連したコンパイラー・オプションを提供します。
文字 | 重大度 | コンパイラー応答 |
---|---|---|
I | 通知 | コンパイルは継続します。このメッセージは、コンパイル中に検出された条件を報告します。 |
W | 警告 | コンパイルは継続します。 メッセージは、有効ではあるが、おそらく意図されたものではない条件を報告します。 |
E | エラー |
![]() |
S | 重大エラー | コンパイルは継続しますが、 オブジェクト・コードは生成されません。 コンパイラーが訂正できないエラー条件が存在します。 |
U | 回復不能エラー | コンパイラーは停止します。
内部コンパイラー・エラーが発生しました。
|
関連情報