このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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 |