初期化関数 (-functions-called-before-main)
生成された main により他の関数より先に呼び出す関数の指定
説明
このオプションは Code Prover 解析のみに影響します。
このオプションは、MATLAB® コードまたは Simulink® モデルから生成されたコードでは使用できません。
生成された main により他の関数より先に呼び出す関数を指定します。
オプションの設定
以下のいずれかの方法を使用してオプションを設定します。
Polyspace® ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成で [Code Prover 検証] ノードを選択してから、このオプションの値を入力します。
Polyspace Platform ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成の [静的解析] タブで [実行時エラー] ノードを選択してから、このオプションの値を入力します。最初に有効にしなければならない他のオプションについては、依存関係を参照してください。
コマンド ラインとオプション ファイル: オプション
-functions-called-before-mainを使用します。コマンド ライン情報を参照してください。
このオプションを使用する理由
モジュールまたはライブラリを検証している場合、main 関数が存在しないと、Code Prover によって生成されます。main 関数が存在する場合、解析では既存の main が使用されます。
このオプションとオプション [呼び出す関数] (-main-generator-calls) を同時に使用して、生成された main が呼び出さなければならない関数を指定します。main から直接または間接的に呼び出される場合を除いて、本ソフトウェアはその関数を解析しません。
設定
既定値なし
関数名を入力するか、一覧から選択します。
をクリックしてフィールドを追加し、関数名を入力します。
をクリックして、コード内の関数の一覧を表示します。その一覧から関数を選択します。
関数またはメソッドがオーバーロードされない場合は、関数名を指定します。それ以外の場合は、引数を使用して関数プロトタイプを指定します。たとえば次のコードでは、プロトタイプ func(int) および func(double) を指定しなければなりません。
int func(int x) {
return(x * 2);
}
double func(double x) {
return(x * 2);
}クラス メソッドである場合:生成された
mainは、クラス コンストラクターを呼び出した後、この関数を呼び出します。クラス メソッドでない場合:生成された
mainは、この関数を呼び出した後、クラス メソッドを呼び出します。
スコープ解決演算子を使用して特定の名前空間の関数を指定する場合は、myClass::init(int) などの完全修飾名を入力します。関数にパラメーターがない場合、myClass::init() のように空のかっこを使用します。
依存関係
オプション [モジュールまたはライブラリの検証] (-main-generator) (Polyspace Code Prover) が選択されている場合にのみ、このオプションを使用できます。
コードに main 関数が含まれている場合、このオプションは無視されます。
ヒント
これらの関数は他の関数より先に呼び出されますが、任意の順序で呼び出すことができます。初期化関数を特定の順序で呼び出す場合は、main 関数を手作業で作成して呼び出します。
コマンド ライン情報
パラメーター: -functions-called-before-main |
値: |
| 既定値なし |
例 1 (Code Prover): polyspace-code-prover -sources |
例 2 (Code Prover): polyspace-code-prover -sources |
例 1 (Code Prover Server): polyspace-code-prover-server -sources |
例 2 (Code Prover Server): polyspace-code-prover-server -sources |
参考
モジュールまたはライブラリの検証 (-main-generator) | 初期化する変数 (-main-generator-writes-variables) | 呼び出す関数 (-main-generator-calls) | クラス (-class-analyzer) | 指定クラス内で呼び出す関数 (-class-analyzer-calls)
トピック
- Polyspace 解析オプションの指定
- main 関数のない C アプリケーションの検証 (Polyspace Code Prover)
- C++ クラスの検証 (Polyspace Code Prover)