メンバー初期化チェックをスキップ (-no-constructors-init-check)
クラス コンストラクターがクラス メンバーを初期化するかどうかをチェックしない
説明
このオプションは Code Prover 解析のみに影響します。
各クラス コンストラクターがすべてのクラス メンバーを初期化するかどうかを Polyspace® でチェックしないように指定します。
オプションの設定
以下のいずれかの方法を使用してオプションを設定します。
Polyspace ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成で [Code Prover 検証] ノードを選択してから、このオプションを選択します。
Polyspace Platform ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成の [静的解析] タブで [実行時エラー] ノードを選択してから、このオプションを選択します。最初に有効にしなければならない他のオプションについては、依存関係を参照してください。
コマンド ラインとオプション ファイル: オプション
-no-constructors-init-checkを使用します。コマンド ライン情報を参照してください。
このオプションを使用する理由
このオプションを使用して、コンストラクターでのクラス メンバー初期化のチェックを無効にします。
設定
オンPolyspace は、各クラス コンストラクターがすべてのクラス メンバーを初期化するかどうかをチェックしません。
オフ (既定の設定)Polyspace は、各クラス コンストラクターがすべてのクラス メンバーを初期化するかどうかをチェックします。次の項目の初期化がチェックされます。
int、char、enumなどの整数型を、signedとunsignedの両方についてfloatおよびdoubleなどの浮動小数点型ポインター
解析では、生成された
mainで組み込み関数__ps_builtin_check_NIV()および__ps_builtin_check_NIP()を使用して、このようなチェックが実行されます。コンストラクターでクラス メンバーが初期化されていないことが Code Prover 解析で証明された場合、関数__ps_builtin_check_NIV()への呼び出しでそのメンバーにレッド チェックが表示されます。解析で、コンストラクターでのクラス メンバーの明確な初期化または未初期化が証明できない場合、オレンジ チェックが表示されます。
依存関係
このオプションは、以下のすべてに該当する場合にのみ使用できます。
コードに
main関数が含まれていない。[ソース コードの言語] (-lang)を[CPP]または[C-CPP]に設定。[モジュールまたはライブラリの検証] (-main-generator)が選択されている。
このオプションを選択する場合、[クラス] (-class-analyzer) オプションを使用してクラスを指定しなければなりません。
コマンド ライン情報
パラメーター: -no-constructors-init-check |
| 既定値: オフ |
例 (Code Prover): polyspace-code-prover -sources |
例 (Code Prover Server): polyspace-code-prover-server -sources |
参考
モジュールまたはライブラリの検証 (-main-generator) | クラス (-class-analyzer)
トピック
- Polyspace 解析オプションの指定
- C++ クラスの検証 (Polyspace Code Prover)