-respect-types-in-fields
)Не приводите неуказательные поля структуры к указателям
Эта опция влияет только на анализ Code Prover.
Задайте, что поля структуры не объявлены первоначально как указатели не будут приведены к указателям позже.
Пользовательский интерфейс (только для настольных продуктов): В строении проекта опция доступна на узле Verification Assumptions.
Командная строка и файл опций: Используйте опцию -respect-types-in-fields
. См. «Информация о командной строке».
Используйте эту опцию, чтобы идентифицировать и запретить смещения между полями структуры, не являющимися указателями, и указателями.
Эта верификация предполагает, что поля структуры, первоначально не объявленные как указатели, не будут приведены к указателям позже.
Код с отключенной опцией | Код с опцией on |
---|---|
struct { unsigned int x1; unsigned int x2; } S; void funct(void) { int var, *tmp; S.x1 = &var; tmp = (int*)S.x1; *tmp = 1; assert(var==1); } В этом примере поля | struct { unsigned int x1; unsigned int x2; } S; void funct(void) { int var, *tmp; S.x1 = &var; tmp = (int*)S.x1; *tmp = 1; assert(var==1); } В этом примере поля |
Эта верификация предполагает, что поля структуры могут быть приведены к указателям, даже когда они не объявлены как указатели.
Параметр: -respect-types-in-fields |
По умолчанию: Off |
Пример (Code Prover):
Polyspace Code Prover -sources file_name |
Пример (Код Prover Server):
Полипространство -code-prover-server -sources file_name |