Проигнорируйте инициализацию по умолчанию глобальных переменных (-no-def-init-glob)

Рассмотрите глобальные переменные как неинициализированные, если явным образом не инициализировано в коде

Описание

Эта опция применяется к Программе автоматического доказательства Кода только. Это не влияет на анализ Средства поиска Ошибки.

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

Установите опцию

Пользовательский интерфейс (только десктопные решения): В вашей настройке проекта опция находится на узле Inputs & Stubbing.

Командная строка: Используйте опцию -no-def-init-glob. Смотрите информацию о Командной строке.

Почему использование эта опция

Стандарт C99 указывает, что глобальные переменные неявно инициализируются. Анализ по умолчанию следует Стандарту и рассматривает эту неявную инициализацию.

Если вы хотите инициализировать определенные глобальные переменные явным образом, используйте эту опцию, чтобы найти экземпляры, где глобальные переменные явным образом не инициализируются.

Настройки

На

Polyspace игнорирует неявную инициализацию глобальных и статических переменных. Верификация генерирует красную ошибку Non-initialized variable, если ваш код читает глобальную или статическую переменную прежде, чем записать в нее.

От (значения по умолчанию)

Polyspace полагает, что глобальные переменные и статические переменные инициализируются согласно стандартам ISO® C ++ или C99. Например, значения по умолчанию:

  • 0 для int

  • 0 для char

  • 0.0 для float

Советы

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

    Эта опция заменяет опцию Variables to initialize (-main-generator-writes-variables). Даже если вы инициализируете переменные со сгенерированным main, эта опция обеспечивает анализ, чтобы проигнорировать инициализацию.

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

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

Параметр: -no-def-init-glob
Значение по умолчанию: 'off'
Пример (программа автоматического доказательства кода): polyspace-code-prover -sources file_name -no-def-init-glob
Пример (сервер программы автоматического доказательства кода): polyspace-code-prover-server -sources file_name -no-def-init-glob