インテル® C++ コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス

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

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

リマーク

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

警告

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

追加の警告

次の Linux* および OS X* オプションは、追加の警告を表示します。

オプション

結果

-W[no-]missing-prototypes

プロトタイプの省略の警告

-W[no-]missing-declarations

宣言の省略の警告

-W[no-]unused-variable

未使用の変数の警告

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

一部のリマーク、警告、エラーには番号が付けられており、-diag-disable=list または /Qdiag-disable:list を使用して無効にできます。

// Windows®
   /Qdiag-disable:117,230,450
// Linux* および OS X*
   -diag-disable=117,230,450

オプションのまとめ

リマーク、警告、およびエラーを制御するには、次のコンパイラー・オプションを使用します (注: '-' プリフィクスのオプションは Linux* および OS X* で、'/' プリフィクスのオプションは Windows® でサポートされています。)。

オプション

結果

wW0

エラー診断を有効にし、警告診断を無効にします。

-w1/W1/W2

警告およびエラー診断を有効にします。

-w2

詳細な警告およびエラー診断を有効にします。

-w3/W3

リマーク、警告、およびエラー診断を有効にします。追加の警告は、レベル 2 の警告以上でも有効になります。

/W4, /Wall

レベル 3 のすべての警告に加えて、ほとんどの場合に無視できる警告とリマークを有効にします。

/W5

すべてのリマーク、警告、およびエラー診断を有効にします。この設定は、最も多くの診断メッセージを出力します。

-Wremarks

リマークとコメントを表示します。

-Wbrief/WL

1 行の簡単な診断を表示します。

-Wcheck

より詳しい診断を有効にします。

-Werror-all

すべての警告とリマークをエラーに変更します。

-Werror/WX

すべての警告をエラーに変更します。

/Wp64

64 ビットの移植に関する診断結果を出力します。

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

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

オプション

結果

[Q]diag-enable<:|=>list

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

[Q]diag-disable<:|=>list

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

[Q]diag-warning<:|=>list

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

[Q]diag-error<:|=>list

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

[Q]diag-remark<:|=>list

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

list 項目は、特定の診断 ID、warnremarkerror のいずれかのキーワード、または特定のグループを指定するキーワード (parvecdriverthreadport-linux (Windows® システムで利用可能)、port-win (Linux* および OS X* システムで利用可能)、openmp) です。 詳細は、「[Q]diag」 を参照してください。

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

オプション

結果

[Q]diag-dump

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

[Q]diag-file[<:|=>file]

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

[Q]diag-file-append[<:|=>file]

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

[Q]diag-error-limit<:|=>n

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