-respect-types-in-fields)Не бросайте неуказательные поля структуры к указателям
Эта опция влияет на анализ Программы автоматического доказательства Кода только.
Укажите, что поля структуры, не объявленные первоначально как указатели, не будут брошены к указателям позже.
Пользовательский интерфейс (только десктопные решения): В вашей настройке проекта опция доступна на узле Verification Assumptions.
Командная строка: Используйте опцию -respect-types-in-fields. Смотрите информацию о командной строке.
Используйте эту опцию, чтобы идентифицировать и запретить броски от неуказательных полей структуры до указателей.
Верификация принимает, что поля структуры, не объявленные первоначально как указатели, не будут брошены к указателям позже.
| Код с опцией прочь | Код с опцией на |
|---|---|
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' |
Пример (Программа автоматического доказательства Кода):
Polyspace Code Prover - источники |
Пример (Сервер Программы автоматического доказательства Кода):
сервер программы автоматического доказательства полипробела кода - источники |