-size-t-type-is
)Задайте базовый тип данных size_t
Задайте базовый тип данных size_t
явным образом: unsigned char
, unsigned short
, unsigned int
, unsigned long
или unsigned long long
. Если вы не задаете эту опцию, ваш выбор компилятора определяет базовый тип.
Пользовательский интерфейс (только десктопные решения): В вашей настройке проекта опция находится на узле Target & Compiler.
Командная строка и файл опций: Используйте опцию -size-t-type-is
. Смотрите информацию о командной строке.
Анализ сопоставляет тип данных с size_t
когда вы задаете свой компилятор с помощью опции Compiler (-compiler)
. В большинстве случаев вы не должны явным образом использовать эту опцию и задать базовый тип для size_t
.
В некоторых ситуациях, при создании кода, вы можете использовать параметр компилятора, который изменил определение компилятора по умолчанию size_t
. В этих случаях эмулируйте свой параметр компилятора при помощи этого Polyspace® опция анализа. В противном случае вы можете видеть сообщение об ошибке, связанное с size_t
во время анализа Polyspace. Если вы видите такое сообщение об ошибке, чтобы зондировать далее и определить базовый тип size_t
, скомпилируйте этот код со своим компилятором с помощью опций, которые вы обычно используете:
/* Header defines malloc as void* malloc (size_t size) #include <stlib.h> void* malloc (unsigned int size);
size_t
использование типа, отличающегося от unsigned int
. Замените unsigned int
с другим типом, таким как unsigned long
и попробуйте еще раз, пока вы не определите базовый тип size_t
.Значение по умолчанию:
defined-by-compiler
defined-by-compiler
Ваша спецификация для 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
определение от вашей аналитической настройки Polyspace, но вашего объявления может использовать различный 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): polyspace-bug-finder-server -size-t-type-is unsigned-long |
Пример (сервер Code Prover):
polyspace-code-prover-server -size-t-type-is unsigned-long |