-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 |