MISRA C:2012 Rule 14.3

Управление выражениями не должно быть инвариантным

Описание

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

Управление выражениями не должно быть инвариантным.

Объяснение

Если выражение управления, например, if условие, имеет постоянное значение, не изменяющееся значение может указать на программную ошибку.

Реализация Polyspace

Polyspace® Bug Finder™ и Polyspace Code Prover™ проверяют это правило кодирования по-другому. Исследования могут привести к различным результатам.

Polyspace Bug Finder отмечает некоторые нарушения MISRA C® 14.3 через Dead code и Useless if средства проверки.

Polyspace Code Prover не использует код Грея для флага MISRA C 14,3 нарушений. В Программе автоматического доказательства Кода можно также видеть различие в результатах на основе выбора для опции Verification level (-to). Смотрите проверку на кодирование стандартных нарушений.

Обменивайтесь сообщениями в отчете

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

  • Выражение всегда верно.

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

  • Выражение является всегда ложным.

  • Управление выражениями не должно быть инвариантным.

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

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

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

Группа: управляйте выражениями оператора
Категория: необходимый
Категория AGC: необходимый
Язык: C90, C99