Удалите предположение, что абсолютное использование адреса допустимо
-no-assumption-on-absolute-addresses
Эта опция влияет на анализ Программы автоматического доказательства Кода только.
-no-assumption-on-absolute-addresses
удаляет предположение по умолчанию, что абсолютные адреса, используемые в вашем коде, допустимы. Если вы используете эту опцию, верификация производит оранжевый Absolute address usage
проверяйте, когда вы присвоите абсолютный адрес указателю. В противном случае проверка является зеленой по умолчанию.
Тип указателя, которому вы присваиваете адрес, определяет начальное значение, сохраненное в адресе. Например, если вы присваиваете адрес int*
указатель, после этой проверки, верификация принимает, что зона памяти, на которую указывает адрес, инициализируется int
значение. Значение может быть чем-либо, допускал тип данных int
.
Если при запуске анализ от пользовательского интерфейса (только десктопные решения Polyspace®) на панели Configuration, можно ввести эту опцию в поле Other. Смотрите Other
.
Использование опции -no-assumption-on-absolute-addresses
может увеличить число оранжевых регистраций вашего кода. Например, следующая таблица показывает дополнительную оранжевую проверку с включенной опцией.
Абсолютное зеленое использование адреса | Абсолютное оранжевое использование адреса |
---|---|
void main() { int *p = (int *)0x32; int x; x=*p; } В этом примере программное обеспечение производит:
| void main() { int *p = (int *)0x32; int x; x=*p; } В этом примере программное обеспечение производит:
|
Для лучшего использования проверки Absolute address usage оставьте эту проверку зеленой по умолчанию во время начальных стадий разработки. Во время этапа интегрирования используйте опцию -no-assumption-on-absolute-addresses
и обнаружьте все использование абсолютных адресов памяти. Просмотрите их и убедитесь, что адреса допустимы.