メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

size_t の管理 (-size-t-type-is)

size_t の基となるデータ型の指定

説明

size_t の基となるデータ型を unsigned charunsigned shortunsigned intunsigned 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 intsize_t の潜在型と見なします。

unsigned-long

解析では、unsigned longsize_t の潜在型と見なします。

unsigned-long-long

解析では、unsigned long longsize_t の潜在型と見なします。

unsigned-char

解析では、unsigned charsize_t の潜在型と見なします。

unsigned-short

解析では、unsigned shortsize_t の潜在型と見なします。

ヒント

size_t の誤った定義に起因するコンパイル エラーは、予期しない状況で発生することがあります。たとえば、次のようなエラーが表示されることがあります。

first parameter of allocation function must be of type "size_t"
これは、次のような割り当て関数の宣言で発生します。
void * operator new(size_t size);
このエラーが発生する原因は、Polyspace が Polyspace 解析構成からの 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