列挙型の定義 (-enum-type-definition
)
enum
を基本データ型で表す方法の指定
説明
解析では、列挙値および選択した定義に応じ、さまざまな基本データ型を使用して列挙型を表すことができます。このオプションを使用する場合、各 enum
型は列挙値を保持できる最小の整数型で表されます。
このオプションは、[構成] ペインの [ターゲットおよびコンパイラ] ノードで使用できます。
オプションの設定
以下のいずれかの方法を使用してオプションを設定します。
Polyspace® ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成で [ターゲットおよびコンパイラ] ノードを選択してから、このオプションの値を選択します。
Polyspace Platform ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成の [ビルド] タブで [ターゲットおよびコンパイラ] を選択してから、オプション [プロセッサ] の設定を構成します。[プロセッサの編集] ダイアログで、オプション [enum の潜在型] の値を選択します。詳細については、
プロセッサの詳細
を参照してください。コマンド ラインとオプション ファイル: オプション
-enum-type-definition
を使用します。コマンド ライン情報を参照してください。
このオプションを使用する理由
コンパイラは enum
型の変数を基本整数型の定数として表します。このオプションを使用して、コンパイラをエミュレートできるようにします。
コンパイラ設定をチェックするには、次を行います。
通常使用するコンパイラ設定を使用して、次のコードをコンパイルします。
コンパイルに失敗した場合、enum { MAXSIGNEDBYTE=127 } mysmallenum_t; int dummy[(int)sizeof(mysmallenum_t) - (int)sizeof(int)];
auto-signed-first
またはauto-unsigned-first
のどちらかを使用しなければなりません。通常使用するコンパイラ設定を使用して、次のコードをコンパイルします。
#include <limits.h> enum { MYINTMAX = INT_MAX } myintenum_t; int dummy[(MYINTMAX + 1) < 0 ? -1:1];
コンパイルに失敗した場合、このオプションには
auto-signed-first
を使用し、それ以外の場合はauto-unsigned-first
を使用します。
設定
既定値: defined-by-compiler
defined-by-compiler
gnu、clang、および tasking 以外のすべてのコンパイラに対して符号付き整数型を使用します。
gnu および clang コンパイラでは、リスト
unsigned int
、signed int
、unsigned long
、signed long
、unsigned long long
、signed long long
からすべての列挙値を保持できる最初の型が使用されます。tasking コンパイラでは、リスト
char
、unsigned char
、short
、unsigned short
、int
、unsigned int
からすべての列挙値を保持できる最初の型が使用されます。auto-signed-first
リスト
signed char
、unsigned char
、signed short
、unsigned short
、signed int
、unsigned int
、signed long
、unsigned long
、signed long long
、unsigned long long
からすべての列挙値を保持できる最初の型を使用します。auto-unsigned-first
以下のリストからすべての列挙値を保持できる最初の型を使用します。
列挙値が正の場合:
unsigned char
、unsigned short
、unsigned int
、unsigned long
、unsigned long long
。1 つ以上の列挙値が負の場合:
signed char
、signed short
、signed int
、signed long
、signed long long
。
コマンド ライン情報
パラメーター: -enum-type-definition |
値: defined-by-compiler | auto-signed-first | auto-unsigned-first |
既定値: defined-by-compiler |
例 (Bug Finder): polyspace-bug-finder -enum-type-definition auto-signed-first |
例 (Code Prover): polyspace-code-prover -enum-type-definition auto-signed-first |
例 (Bug Finder Server): polyspace-bug-finder-server -enum-type-definition auto-signed-first |
例 (Code Prover Server): polyspace-code-prover-server -enum-type-definition auto-signed-first |