size_t の管理 (-size-t-type-is)
size_t の基となるデータ型の指定
説明
size_t の基となるデータ型を unsigned char、unsigned short、unsigned int、unsigned long、または unsigned long long に明示的に指定します。このオプションを指定しない場合、選択したコンパイラによって潜在型が決まります。
オプションの設定
以下のいずれかの方法を使用してオプションを設定します。
Polyspace® ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成で [ターゲットおよびコンパイラ] ノードを選択してから、このオプションの値を選択します。
Polyspace Platform ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成の [ビルド] タブで [ターゲットおよびコンパイラ] を選択してから、オプション [プロセッサ] の設定を構成します。[プロセッサの編集] ダイアログで、オプション [size_t の型] の値を選択します。詳細については、
プロセッサの詳細を参照してください。コマンド ラインとオプション ファイル: オプション
-size-t-type-isを使用します。コマンド ライン情報を参照してください。
このオプションを使用する理由
解析では、オプション [コンパイラ] (-compiler) を使用してコンパイラを指定するときに、データ型が size_t に関連付けられます。ほとんどの場合、このオプションを明示的に使用して size_t の基となる型を指定する必要はありません。
場合によっては、コードをビルドする際に、コンパイラの size_t の既定の定義を変更したコンパイラ オプションを使用することがあります。このような場合には、この Polyspace 解析オプションを使用してコンパイラ オプションをエミュレートします。そうしない場合、Polybase による解析中に size_t に関連するエラー メッセージが表示される可能性があります。このようなエラー メッセージが表示される場合は、さらに調べて size_t の潜在型を判別するため、通常使用するオプションを使用して、コンパイラで次のコードをコンパイルします。
/* Header defines malloc as void* malloc (size_t size) #include <stlib.h> void* malloc (unsigned int size);
unsigned int とは異なる型を使用して size_t を定義します。unsigned int を別の型 (unsigned long など) に置き換え、size_t の潜在型が判明するまで再試行してください。設定
既定値: defined-by-compiler
defined-by-compiler[コンパイラ] (-compiler)の指定によって、size_tの潜在型が決まります。unsigned-int解析では、
unsigned intをsize_tの潜在型と見なします。unsigned-long解析では、
unsigned longをsize_tの潜在型と見なします。unsigned-long-long解析では、
unsigned long longをsize_tの潜在型と見なします。unsigned-char解析では、
unsigned charをsize_tの潜在型と見なします。unsigned-short解析では、
unsigned shortをsize_tの潜在型と見なします。
ヒント
size_t の誤った定義に起因するコンパイル エラーは、予期しない状況で発生することがあります。たとえば、次のようなエラーが表示されることがあります。
first parameter of allocation function must be of type "size_t"
void * operator new(size_t size);
size_t 定義を使用して割り当て関数を内部で宣言したものの、ユーザーはコンパイラ ヘッダーからの、異なる size_t 定義を使用して宣言している可能性があることです。この size_t 定義の不一致が原因で、割り当て関数の宣言の不一致が発生し、割り当て関数に関するエラー メッセージとして表示されます。コマンド ライン情報
パラメーター: -size-t-type-is |
値: defined-by-compiler | unsigned-char | unsigned-int | unsigned-short | unsigned-long | unsigned-long-long |
既定値: defined-by-compiler |
例 (Bug Finder): polyspace-bug-finder -size-t-type-is unsigned-long |
例 (Code Prover): polyspace-code-prover -size-t-type-is unsigned-long |
例 (Bug Finder Server): polyspace-bug-finder-server -size-t-type-is unsigned-long |
例 (Code Prover Server): polyspace-code-prover-server -size-t-type-is unsigned-long |