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

diag、Qdiag

コンパイル時の診断情報の表示を制御します。

構文

Linux* および macOS*:

-diag-type=diag-list

Windows*:

/Qdiag-type:diag-list

引数

type

診断に対して行う処理です。設定可能な値は以下のとおりです。

enable

診断メッセージまたはメッセージのグループを有効にします。-diag-enable=all (Linux* および macOS*) または /Qdiag-enable:all (Windows*) を指定すると、diag-list のすべての診断メッセージが有効になります。

disable

診断メッセージまたはメッセージのグループを無効にします。-diag-disable=all (Linux* および macOS*) または /Qdiag-disable:all (Windows*) を指定すると、diag-list のすべてのメッセージが無効になります。

error

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

warning

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

remark

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

diag-list

診断グループまたは ID の値です。設定可能な値は以下のとおりです。

driver

コンパイラー・ドライバーによって発行される診断メッセージを指定します。

port-linux

Linux* システムに移植するときにエラーになる可能性のある言語機能に対する診断メッセージを指定します。この診断グループは、Windows* システムでのみ利用できます。

port-win

Windows* に移植するときにエラーになる可能性のある GNU* 拡張機能に対する診断メッセージを指定します。この診断グループは、Linux* および macOS* システムでのみ利用できます。

thread

プログラムのスレッド化に役立つ診断メッセージを指定します。

vec

ベクトル化によって発行される診断メッセージを指定します。

par

自動並列化 (並列化による最適化) によって発行される診断メッセージを指定します。

openmp

OpenMP* 並列化によって発行される診断メッセージを指定します。

warn

重要度が "warning" (警告) の診断メッセージを指定します。

error

重要度が "error" (エラー) の診断メッセージを指定します。

remark

リマークまたはコメントの診断メッセージを指定します。

cpu-dispatch

診断メッセージの CPU ディスパッチ・リマークを指定します。デフォルトでは、これらのリマークは有効です。

id[,id,...]

1 つまたは複数のメッセージの ID を指定します。複数のメッセージ ID を指定する場合は、各メッセージ ID をカンマで区切る必要があります。各 id の間にはスペースを入れないでください。

tag[,tag,...]

1 つまたは複数のメッセージの簡略名を指定します。複数の簡略名を指定する場合は、各簡略名をカンマで区切る必要があります。各 tag の間にはスペースを入れないでください。

生成された診断メッセージは、[Q]x/arch (Windows*) または -m (Linux* および macOS*) などの一部のオプションによる影響を受けます。

デフォルト

オフ

デフォルトでは、コンパイラーは特定の診断メッセージを発行します。

説明

このオプションは、コンパイル時の診断情報の表示を制御します。[Q]diag-file オプションが指定されている場合を除き、診断メッセージは stderr に出力されます。

ベクトル化によって通知される診断情報を制御するには、[q または Q]opt-report[q または Q]opt-report-phase:vec を指定します。

自動並列化によって通知される診断情報を制御するには、[q または Q]opt-report[q または Q]opt-report-phase:par を指定します。

IDE オプション

Visual Studio*: [Diagnostics (診断)] > [Disable Specific Diagnostics (特定の診断を無効にする)] (/Qdiag-disable:id)

[Advanced (詳細)] > [Disable Specific Warnings (指定の警告を無効にする)] (/Qdiag-disable)

Eclipse*: [Compilation Diagnostics (コンパイル診断)] > [Disable Specific Diagnostics (特定の診断を無効にする)]

Xcode*: [Diagnostics (診断)] > [Disable Specific Diagnostics (特定の診断を無効にする)]

代替オプション

enable vec

Linux* および macOS*: -qopt-report; -qopt-report -qopt-report-phase=vec

Windows*: /Qopt-report; /Qopt-report /Qopt-report-phase:vec

disable vec

Linux* および macOS*: -qopt-report=0 -qopt-report-phase=vec

Windows*: /Qopt-report:0 /Qopt-report-phase:vec

enable par

Linux* および macOS*: -qopt-report; -qopt-report -qopt-report-phase=par

Windows*: /Qopt-report; /Qopt-report /Qopt-report-phase:par

disable par

Linux* および macOS*: -qopt-report=0 -qopt-report-phase=par

Windows*: /Qopt-report:0 /Qopt-report-phase:par

次の例は、診断 ID 117、230、および 450 を有効にします。

-diag-enable=117,230,450     ! Linux* および macOS*
/Qdiag-enable:117,230,450    ! Windows*

次の例は、ベクトル化診断メッセージを警告に変更します。

-diag-enable=vec -diag-warning=vec      ! Linux* および macOS*
/Qdiag-enable:vec /Qdiag-warning:vec    ! Windows*

警告に変更する前に、ベクトル化診断を有効にする必要があります。

次の例は、すべての自動並列化診断メッセージを無効にします。

-diag-disable=par     ! Linux* および macOS*
/Qdiag-disable:par    ! Windows*

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

-diag-error=warn,remark    ! Linux* および macOS*
/Qdiag-error:warn,remark   ! Windows*

次の例は、ベクトル化診断メッセージのみを出力します。

-diag-dump -diag-disable=all -diag-enable=vec        ! Linux* および macOS*
/Qdiag-dump /Qdiag-disable:all /Qdiag-enable:vec     ! Windows*

関連情報