メインコンテンツ

メンバー初期化チェックをスキップ (-no-constructors-init-check)

クラス コンストラクターがクラス メンバーを初期化するかどうかをチェックしない

説明

このオプションは Code Prover 解析のみに影響します。

各クラス コンストラクターがすべてのクラス メンバーを初期化するかどうかを Polyspace® でチェックしないように指定します。

オプションの設定

以下のいずれかの方法を使用してオプションを設定します。

  • Polyspace ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成で [Code Prover 検証] ノードを選択してから、このオプションを選択します。

  • Polyspace Platform ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成の [静的解析] タブで [実行時エラー] ノードを選択してから、このオプションを選択します。最初に有効にしなければならない他のオプションについては、依存関係を参照してください。

  • コマンド ラインとオプション ファイル: オプション -no-constructors-init-check を使用します。コマンド ライン情報を参照してください。

このオプションを使用する理由

このオプションを使用して、コンストラクターでのクラス メンバー初期化のチェックを無効にします。

設定

オン

Polyspace は、各クラス コンストラクターがすべてのクラス メンバーを初期化するかどうかをチェックしません。

オフ (既定の設定)

Polyspace は、各クラス コンストラクターがすべてのクラス メンバーを初期化するかどうかをチェックします。次の項目の初期化がチェックされます。

  • intcharenum などの整数型を、signedunsigned の両方について

  • float および double などの浮動小数点型

  • ポインター

解析では、生成された main で組み込み関数 __ps_builtin_check_NIV() および __ps_builtin_check_NIP() を使用して、このようなチェックが実行されます。コンストラクターでクラス メンバーが初期化されていないことが Code Prover 解析で証明された場合、関数 __ps_builtin_check_NIV() への呼び出しでそのメンバーにレッド チェックが表示されます。解析で、コンストラクターでのクラス メンバーの明確な初期化または未初期化が証明できない場合、オレンジ チェックが表示されます。

依存関係

このオプションは、以下のすべてに該当する場合にのみ使用できます。

このオプションを選択する場合、[クラス] (-class-analyzer) オプションを使用してクラスを指定しなければなりません。

コマンド ライン情報

パラメーター: -no-constructors-init-check
既定値: オフ
例 (Code Prover): polyspace-code-prover -sources file_name -main-generator -class-analyzer custom=myClass1,myClass2 -class-analyzer-calls unused-public -no-constructors-init-check
例 (Code Prover Server): polyspace-code-prover-server -sources file_name -main-generator -class-analyzer custom=myClass1,myClass2 -class-analyzer-calls unused-public -no-constructors-init-check