MISRA C:2012 Rule 9.1

Значение объекта с длительностью автоматического хранения не должно быть считано, прежде чем это было установлено

Описание

Сообщение в отчете:

Примечание

Используйте Bug Finder вместо Code Prover для проверки правил кодирования. Поддержка кодирования правил, регистрируясь в Code Prover будет удалена в будущем релизе. См. Вопросы совместимости.

Управляйте определением

Значение объекта с длительностью автоматического хранения не должно быть считано, прежде чем это было установлено.

Объяснение

Переменная с длительностью автоматического хранения является выделенной памятью в начале блока включения кода и освобожденный в конце. Все неглобальные переменные имеют эту продолжительность хранения, кроме объявленных static или extern.

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

Реализация Polyspace

Polyspace® анализ проверяет некоторые нарушения как неинициализированные переменные. Для получения дополнительной информации смотрите Non-initialized local variable.

Polyspace Bug Finder™ и Polyspace Code Prover™ проверяют это правило кодирования по-другому. Исследования могут привести к различным результатам. В Code Prover можно также видеть различие в результатах на основе выбора для опции Verification level (-to). Смотрите проверку на кодирование стандартных нарушений.

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.

Проверяйте информацию

Группа: инициализация
Категория: обязательный
Категория AGC: обязательный

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2021b

Введенный в R2014b