Управляющие выражения не должны быть инвариантными
Управляющие выражения не должны быть инвариантными.
Если управляющее выражение, для примера 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. В Code Prover также можно увидеть различие в результатах, основанную на вашем выборе для опции Verification level (-to)
. Смотрите раздел «Проверка на нарушения стандартов кодирования».
Логические операции, результаты которых инвариантны, не допускаются.
Выражение всегда верно.
Выражение всегда ложно.
Управляющие выражения не должны быть инвариантными.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: Выражения оператора управления |
Категория: Требуемая |
Категория AGC: Требуется |