スタティックの検証は、プログラムのデバッグに役立つ追加の診断機能です。スタティックの検証オプションを使用して、以下のようなコンパイル済みコードの潜在的なエラーを検出することができます。
スタティックの検証オプションでは、完成したアプリケーションと開発中のアプリケーションの両方を解析できます。
コンパイラー・オプションを起動してスタティックの検証を有効にした場合、コンパイラーは、実行ファイルを生成しません。そのため、プログラムの実行中に発生する可能性のあるエラーをすべて検出することはできません。
スタティックの検証には、プログラム・オブジェクトの変更と使用に関連するヒューリスティックが使用されます。例えば、配列の未定義の要素にある値が設定されると、すべての任意の配列の要素が同じ値に設定されたとみなされます。同様に、未定義のプロシージャー呼び出しの後では、参照によって置き換えられたすべての引数が使用され、変更された可能性があると想定されます。
ランタイムチェックでは入力変数の固定値セットでプログラムを実行するため、すべてのエッジ効果をチェックすることは困難です。しかし、スタティックの検証では、同時にすべての可能性のある値で、プロジェクトの一般的な概要チェックを行います。
-diag-enable sv{[1|2|3]} (Linux* および Mac OS*) コンパイラー・オプションまたは /Qdiag-enable:sv{[1|2|3]} (Windows*) コンパイラー・オプションを使用してスタティックの検証を有効にします。数字は、解析レベル (概要、デフォルト、詳細) を指定します。
コマンドラインには、複数のソースファイルを含めることができます。オブジェクト・ファイルは各ソースファイルに対して作成されます。すべてのオブジェクト・ファイルが同時に処理されます。
その他の関連オプションには以下があります。
-diag-disable sv |
スタティックの検証を無効にします。 |
-diag-disable warn |
スタティックの検証固有のメッセージを含むすべての警告、注意、コメントを抑止します (エラーのみを発行します)。 |
-diag-disable num-list |
番号リストによりメッセージを抑止します。num-list は 1 つのメッセージまたはカンマや括弧で区切られたメッセージ番号のリストです。 |
-diag-file {file} |
診断結果を .diag (デフォルトの拡張子) ファイルに送ります。診断結果をファイルに送る前にスタティックの検証を有効にする必要があります。ファイル名が指定されていない場合は、診断結果は name-of-the-first-source-file.diag に送られます。 |
-diag-enable sv-include |
インクルード・ファイルとソースファイルを診断します。 |
スタティックの検証を有効にするコマンドライン・オプションとともに /c コンパイラー・オプションがコマンドラインで使用された場合、1 つのオブジェクト・ファイルが作成されます。スタティックの検証の診断結果は生成されません。このオブジェクト・ファイルは、さらにスタティックの検証を行う際に使用されることがあります。この機能は、プログラムが異なる言語 (C/C++ と Fortran) で記述されたファイルで構成されたプログラムの場合に役立ちます。
OpenMP 宣言子を解析するには、-openmp (Linux および Mac OS) オプションまたは /Qopenmp (Windows) オプションをコマンドラインに追加します。
スタティックの検証オプションを、C/C++ コードと Fortran コードの両方を使用する言語が混在したアプリケーションで使用することができます。オブジェクト・ファイルは、C/C++ ソースと Fortran ソースから作成されます。
また、スタティックの検証を IPO 用に作成されたオブジェクト・ファイルでも使用できます。
スタティックの検証機能には、以下の項目が含まれます。
次のトピックでは、これらの機能が詳細に説明されています。