exponenta event banner

Отключить проверки на отсутствие инициализации (-disable-initialization-checks)

Отключить проверки неинициализированных переменных и указателей

Описание

Этот параметр влияет только на анализ программы проверки кода.

Укажите, что Prover™ кода Polyspace ® не должны проверять отсутствие инициализации в коде.

Задать опцию

Пользовательский интерфейс (только для настольных ПК): в конфигурации проекта параметр находится в узле Проверить поведение.

файл командной строки и параметров: Использовать параметр -disable-initialization-checks. См. раздел Сведения о командной строке.

Зачем использовать этот параметр

Используйте этот параметр, если не требуется обнаруживать экземпляры неинициализированных переменных.

Настройки

На

Средство проверки кода Polyspace не выполняет следующие проверки:

Polyspace предполагает, что при объявлении:

  • Переменные имеют полный диапазон значений, допустимых их типом.

  • Указатели могут быть NULL- значение или указывает на блок памяти с неизвестным смещением.

Выкл. (по умолчанию)

Средство проверки кода Polyspace проверяет отсутствие инициализации в коде. Программа отображает красные проверки, если, например, переменная не инициализирована, и оранжевые проверки, если переменная инициализирована только на некоторых путях выполнения.

Совет

  • При выборе этого варианта программное обеспечение не сообщает о большинстве нарушений MISRA C ®: 2004 rule 9.1, иMISRA C:2012 Rule 9.1.

  • При выборе этого параметра количество и тип оранжевых чеков в коде могут измениться.

    Например, в следующей таблице показана дополнительная проверка оранжевого цвета с включенной опцией.

    Проверка неинициализации включенаПроверка неинициализации отключена
    void func(int flag) {
        int var1,var2;
        if( flag==0) {
            var1=var2;
        }
        else {
            var1=0;
        }
        var2=var1 + 1;
    }

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

    • Проверка неинициализированной локальной переменной красного цвета var2 в if филиал. Проверка продолжается, как если бы только else ветвь if инструкция существует.

    • Зеленая неинициализированная проверка локальной переменной var1 в последнем заявлении. var1 имеет присвоенное значение 0.

    • Зеленая проверка переполнения на + операция.

    void func(int flag) {
        int var1,var2;
        if( flag==0) {
            var1=var2;
        }
        else {
            var1=0;
        }
        var2=var1 + 1;
    }

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

    • Не создает неинициализированные проверки локальных переменных. При инициализации программное обеспечение предполагает, что var2 имеет полный диапазон int значения. После if оператор, потому что программное обеспечение учитывает оба if филиалы, он предполагает, что var1 также имеет полный спектр int значения.

    • Производит оранжевую проверку переполнения на + операция. Например, если var1 имеет максимум int значение, добавление к нему 1 может вызвать переполнение.

Информация командной строки

Параметр: -disable-initialization-checks
По умолчанию: Откл.
Пример (проверка кода): polyspace-code-prover -sources file_name -disable-initialization-checks
Пример (сервер проверки кода): polyspace-code-prover-server -sources file_name -disable-initialization-checks