MISRA C ++:2008 правил 0-1-2

Проект не должен содержать неосуществимые пути

Описание

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

Проект не должен содержать неосуществимые пути.

Объяснение

Это правило отмечает ситуации, где группа операторов избыточна из-за несинтаксических причин. Например, условие if всегда является TRUE или FALSE. Код, который недостижим от синтаксических причин, отмечается правилом 0-1-1.

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

Реализация Polyspace

Средство поиска ошибки и Программа автоматического доказательства Кода проверяют это правило по-другому. Анализ может привести к различным результатам.

  • Средство поиска ошибки использует и средства проверки, чтобы обнаружить нарушения этого правила.

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

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

Проект не должен содержать неосуществимые пути.

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

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

Примеры

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

void func (unsigned int arg) {
 if (arg >= 0U) //Noncompliant
     arg  = 1U;
 if (arg < 0U) //Noncompliant
     arg = 1U;
}

Переменная unsigned int является неотрицательной. И условия if, включающие переменную, являются всегда верными или всегда ложными и являются поэтому избыточными.

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

Группа: независимые от языка проблемы
Категория: необходимый

Введенный в R2013b