exponenta event banner

MISRA C:2012 Правило 14.3

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

Описание

Определение правила

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

Объяснение

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

Внедрение Polyspace

Средство проверки помечает условия в if или while операторы или условия, которые появляются как первые операнды троичных операторов (?:), если условия инвариантны, например, всегда вычислять как true или false.

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

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

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

Дополнительное сообщение в отчете

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

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

  • Выражение всегда имеет значение false.

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

Поиск неисправностей

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

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

Группа: Выражения управляющих операторов
Категория: Обязательно
Категория СМЖЛ: требуется