MISRA C++:2008 Rule 0-1-2

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

Описание

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

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

Объяснение

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

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

Реализация Polyspace

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

  • Bug Finder проверяет на это правило через Dead code и Useless if средства проверки..

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

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

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

Примеры

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

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

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

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

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