ここでは、コンパイラーのリマーク、警告、およびエラーについて説明します。インテル® 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 戻り型が使用されている場合に警告します。 |
C/C++ の用法が構文的または意味的に間違っていることを報告するメッセージです。該当する条件に当たればエラーメッセージは必ず表示されます。エラーメッセージが表示されると、そのエラーを含むモジュールのオブジェクト・コードが止まり、リンクの処理も止まりますが、他にエラーがないかどうかを調べる処理はそのまま続けられます。次に、エラーメッセージの代表例をいくつか示します。
リマーク、警告、およびエラーを制御するには、次のコンパイラー・オプションを使用します。
オプション |
結果 |
---|---|
-w |
すべての警告を抑止します。 |
-w0 |
エラーを表示します。 |
-w1 |
警告とエラーを表示します。 |
-w2 |
リマーク、警告、エラーを表示します。 |
-Wbrief |
1 行の簡単な診断を表示します。 |
-Wcheck |
より詳しい診断を有効にします。 |
-Werror-all |
すべての警告とリマークをエラーに変更します。 |
-Werror |
すべての警告をエラーに変更します。 |
-diag コンパイラー・オプションを使用して、診断情報の表示を制御することもできます。このコンパイラー・オプションは、複数の引数や値を受け付けるため、表示される診断メッセージおよびレポートを幅広く制御することができます。
最も一般的なものは以下のとおりです。
オプション |
結果 |
---|---|
-diag-enable list |
診断メッセージまたはメッセージのグループを有効にします。 |
-diag-disable list |
診断メッセージまたはメッセージのグループを無効にします。 |
-diag-warning list |
診断を警告に変更するようコンパイラーに指示します。 |
-diag-error list |
診断をエラーに変更するようコンパイラーに指示します。 |
-diag-remark list |
診断をリマーク (コメント) に変更するようコンパイラーに指示します。 |
list は、特定の診断 ID、warn、remark、errorのいずれかのキーワード、または特定のグループを指定するキーワード (par、vec、sc、driver、thread、par、、port-win、sc、openmp) です。詳細は、「-diag」を参照してください。
その他の診断関連オプションには以下があります。