-respect-types-in-globals
)Не бросайте неуказательные глобальные переменные к указателям
Эта опция влияет на анализ Программы автоматического доказательства Кода только.
Укажите, что глобальные переменные, не объявленные первоначально как указатели, не будут брошены к указателям позже.
Пользовательский интерфейс (только десктопные решения): В вашей настройке проекта опция доступна на узле Verification Assumptions.
Командная строка: Используйте опцию -respect-types-in-globals
. Смотрите информацию о командной строке.
Используйте эту опцию, чтобы идентифицировать и запретить броски от неуказательных глобальных переменных до указателей.
Верификация принимает, что глобальные переменные, не объявленные первоначально как указатели, не будут брошены к указателям позже.
Верификация принимает, что глобальные переменные могут быть брошены к указателям, даже когда они не объявляются как указатели.
Если вы выбираете эту опцию, количество регистраций вашего кода может измениться. Можно использовать эту опцию и изменение в результатах идентифицировать случаи, куда вы бросаете неуказательные переменные к указателям.
Например, в следующем примере, когда вы выбираете опцию, результаты имеют тот меньше оранжевой проверки и еще одна красная проверка.
Код с опцией прочь | Код с опцией на |
---|---|
int global; void main(void) { int local; global = (int)&local; *(int*)global = 5; assert(local==5); } В этом примере, | int global; void main(void) { int local; global = (int)&local; *(int*)global = 5; assert(local==5); } В этом примере, |
Параметр: -respect-types-in-globals |
Значение по умолчанию: Off |
Пример (Программа автоматического доказательства Кода):
Polyspace Code Prover - источники |
Пример (Сервер Программы автоматического доказательства Кода):
сервер программы автоматического доказательства полипробела кода - источники |
Respect types in fields (-respect-types-in-fields)
| Non-initialized local variable
(Polyspace Code Prover Access)