-no-assumption-on-absolute-addresses

Удалите предположение, что использование абсолютного адреса допустимо

Синтаксис

-no-assumption-on-absolute-addresses

Описание

Эта опция влияет только на анализ Code Prover.

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

В этом примере программное обеспечение создает:

  • Зеленый Absolute address usage проверить, когда адрес 0x32 назначается указателю p.

  • Зеленый Illegally dereferenced pointer проверяется, когда указатель p считывается.

    x потенциально все значения разрешены для int переменная.

void main() {
    int *p = (int *)0x32;
    int x;
    x=*p;
}

В этом примере программное обеспечение создает:

  • Оранжевый Absolute address usage проверяйте, когда адрес 0x32 назначается указателю p.

  • Зеленый Illegally dereferenced pointer проверяется, когда указатель p считывается.

    x потенциально все значения разрешены для int переменная.

Для наилучшего использования проверки Absolute address usage оставьте этот чек зеленым по умолчанию на начальных этапах разработки. На этапе интегрирования используйте опцию -no-assumption-on-absolute-addresses и обнаружение всех применений абсолютных адресов памяти. Просмотрите их и убедитесь, что адреса действительны.

Введенный в R2016a