メインコンテンツ

初期化関数 (-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);
}
C++ では、関数の状況に応じて次のようになります。

  • クラス メソッドである場合:生成された main は、クラス コンストラクターを呼び出した後、この関数を呼び出します。

  • クラス メソッドでない場合:生成された main は、この関数を呼び出した後、クラス メソッドを呼び出します。

スコープ解決演算子を使用して特定の名前空間の関数を指定する場合は、myClass::init(int) などの完全修飾名を入力します。関数にパラメーターがない場合、myClass::init() のように空のかっこを使用します。

依存関係

オプション [モジュールまたはライブラリの検証] (-main-generator) (Polyspace Code Prover) が選択されている場合にのみ、このオプションを使用できます。

コードに main 関数が含まれている場合、このオプションは無視されます。

ヒント

これらの関数は他の関数より先に呼び出されますが、任意の順序で呼び出すことができます。初期化関数を特定の順序で呼び出す場合は、main 関数を手作業で作成して呼び出します。

コマンド ライン情報

パラメーター: -functions-called-before-main
値: function1[,function2[,...]]
既定値なし
例 1 (Code Prover): polyspace-code-prover -sources file_name -main-generator -functions-called-before-main myfunc
例 2 (Code Prover): polyspace-code-prover -sources file_name -main-generator -functions-called-before-main myClass::init(int)
例 1 (Code Prover Server): polyspace-code-prover-server -sources file_name -main-generator -functions-called-before-main myfunc
例 2 (Code Prover Server): polyspace-code-prover-server -sources file_name -main-generator -functions-called-before-main myClass::init(int)