Глобальной переменной не присвоено значение в разделе инициализации программы
Эта проверка определяет, все ли глобальные переменные, отличные от const (и локальные статические переменные), явно присваиваются значению в объявлении или в разделе кода, обозначенном как код инициализации.
Для указания конца кода инициализации введите строку.
#pragma polyspace_end_of_init
main функция. Код инициализации начинается с начала main и продолжается до этой прагматики. Чтобы включить эту проверку, используйте опцию Check that global variables are initialized after warm reboot (-check-globals-init).Проверка глобальной переменной выполняется следующим образом:
Красный цвет, если переменная не инициализирована вообще, либо явно в объявлении, либо в коде инициализации (или инициализирована в мертвом коде в коде инициализации).
Оранжевый, если переменная не инициализирована на определенных путях выполнения через код инициализации. Например, переменная инициализируется в if ветвь условного оператора, но не else филиал.
Зеленый, если переменная всегда инициализируется после завершения выполнения кода инициализации.
При теплой перезагрузке, чтобы сэкономить время, сегмент данных программы, который может содержать переменные значения из предыдущего состояния, не загружается. Вместо этого программа должна явным образом инициализировать все переменные, не являющиеся const, перед выполнением. Эта проверка проверяет, что все глобальные переменные, отличные от const, действительно инициализируются при теплой перезагрузке.
Просмотрите все экземпляры неинициализированной или, возможно, неинициализированной переменной на панели «Доступ к переменной» (или на панели «Глобальные переменные» в веб-интерфейсе Polyspace ® Access). Проверьте, есть ли какая-либо из ссылок перед прагматикойpolyspace_end_of_init встречается.
См. также раздел Доступ к переменным.
| Группа: Поток данных |
| Язык: C |
| Акроним: GLOBAL_SET_AT_INITIALIZATION |