Управление выражениями не должно быть инвариантным
Управление выражениями не должно быть инвариантным.
Если выражение управления, например, if
условие, имеет постоянное значение, не изменяющееся значение может указать на программную ошибку.
Средство проверки отмечает условия в if
или while
операторы или условия, которые появляются как первые операнды тернарных операторов (?:
) если условия являются инвариантными, например, оценивайте всегда к TRUE или FALSE.
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)
(Polyspace Code Prover). Смотрите проверку на кодирование стандартных нарушений.
Логические операции, результаты которых являются инвариантными, не должны быть разрешены.
Выражение всегда верно.
Выражение является всегда ложным.
Управление выражениями не должно быть инвариантным.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: управляйте выражениями оператора |
Категория: необходимый |
Категория AGC: необходимый |