-enum-type-definition)Укажите, как представлять enum с базовым типом
Разрешить анализу использовать различные базовые типы для представления перечисляемого типа в зависимости от значений перечислителя и выбранного определения. При использовании этой опции каждый enum представляет наименьший интегральный тип, который может содержать его значения перечисления.
Этот параметр доступен в узле Target & Compiler на панели Configuration.
Пользовательский интерфейс (только для настольных ПК): в конфигурации проекта этот параметр находится в узле Target & Compiler.
файл командной строки и параметров: Использовать параметр -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.
Для компилятора задач используется первый тип, который может содержать все значения перечислителя из этого списка: 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.
Если одно или несколько значений перечислителя являются отрицательными: 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 |
Пример (поиск ошибок):
polyspace-bug-finder -enum-type-definition auto-signed-first |
Пример (проверка кода):
polyspace-code-prover -enum-type-definition auto-signed-first |
Пример (сервер поиска ошибок): polyspace-bug-finder-server -enum-type-definition auto-signed-first |
Пример (сервер проверки кода):
polyspace-code-prover-server -enum-type-definition auto-signed-first |