exponenta event banner

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

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

Описание

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

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

Объяснение

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

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

Внедрение Polyspace

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

  • Поиск ошибок проверяет это правило через Dead code и Useless if шашки..

  • Средство проверки кода не использует проверки во время выполнения для обнаружения нарушений этого правила. Вместо этого программа Code Prover обнаруживает нарушения во время компиляции.

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

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

Примеры

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

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

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

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

Группа: Вопросы, не зависящие от языка
Категория: Обязательно
Представлен в R2013b