リマーク、警告、およびエラー

ここでは、コンパイラーのリマーク、警告、およびエラーについて説明します。インテル(R) C++ コンパイラーは、これらのメッセージとともに、エラーを含むソース行も標準出力に出力します。

リマーク

リマークとは、C/C++ で一般的によく使用されるが実際には規約に違反している恐れのある用法を報告するメッセージです。-w2 オプションを指定しない限り、リマークメッセージは出力も表示もされません。リマークメッセージが表示されても、変換もリンクも停止されません。また、リマークメッセージが表示されても出力ファイルは影響を受けません。次に、リマークメッセージの代表例をいくつか示します。

警告

警告とは、C/C++ の規約には沿っているが、プログラミング言語の用法として問題のある部分を報告するメッセージです。デフォルトでは、コンパイラーは警告を表示します。-w コンパイラー・オプションを使用すると、すべての警告メッセージは表示されません。警告メッセージが表示されても、変換もリンクも停止されません。また、警告メッセージが表示されても出力ファイルは影響を受けません。次に、警告メッセージの代表例をいくつか示します。

追加された警告

本バージョンのインテル C++ コンパイラーは、次のオプションをサポートします。

オプション 結果
-W[no-]missing-prototypes プロトタイプの省略の警告
-W[no-]pointer-arith 疑わしいポインター計算の警告
-W[no-]uninitialized 初期化する前に変数を使用している場合の警告
-W[no-]deprecated 推奨されていない機能に関する警告
-W[no-]abi 生成されたコードが C++ ABI 規格に準拠していない場合の警告
-W[no-]unused-function 宣言された関数が使用されていない場合の警告
-W[no-]unknown-pragmas #pragma 宣言子が使用された場合の警告
-W[no-]main メインの戻り型が予想と一致しない場合の警告
-W[no-]comment[s] /* */ コメントの中央に /* がある場合の警告
-W[no-]return-type 関数でデフォルトの int 戻り型が使用されている場合の警告
void 関数で return 文が使用されている場合の警告

エラー

C/C++ の用法が構文的または意味的に間違っていることを報告するメッセージです。該当する条件に当たればエラーメッセージは必ず表示されます。エラーメッセージが表示されると、そのエラーを含むモジュールのオブジェクト・コードが止まり、リンクの処理も止まりますが、他にエラーがないかどうかを調べる処理はそのまま続けられます。次に、エラーメッセージの代表例をいくつか示します。

オプションのまとめ

リマーク、警告、およびエラーを制御するには、次のコンパイラー・オプションを使用します。

オプション 結果
-w すべての警告を抑止
-w0 エラーを表示
-w1 警告とエラーを表示
-w2 リマーク、警告、エラーを表示
-Wbrief 1 行の簡単な診断を表示
-Wcheck より厳密な診断を有効

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

一般的に使用される組み合わせは次のとおりです。

オプション 結果

-diag-enable list

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

-diag-disable list

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

-diag-warning list

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

-diag-error list

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

-diag-remark list

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

list には特定の診断 ID、warnremark、または error キーワードのいずれか、特定のグループを指定するキーワード (par、vec、driver、cpu-dispatch、ssp、assure、openmp、svport-win) を指定することができます。詳細は、「-diag」を参照してください。

その他の診断関連オプションには以下があります。

オプション 結果

-diag-dump

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

-diag-file[=file]

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

-diag-file-append[=file]

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