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

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

Описание

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

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

Объяснение

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

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

Реализация Polyspace

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

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

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

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

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

Примеры

расширить все

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

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

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

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