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

Не должно быть никакого мертвого кода

Описание

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

Не должно быть никакого мертвого кода.

Объяснение

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

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

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

Не должно быть никакого мертвого кода.

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

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

Примеры

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

#define ULIM 10000

int func(int arg) {
    int res;
    res = arg*arg + arg;
    if (res > ULIM)
        res = 0; //Noncompliant
    return arg;
}

В этом примере, операции, включающие res избыточны потому что функциональный func возвращает его аргумент arg. Все операции, включающие res может быть удален, не изменяя эффект функции.

Средство проверки отмечает последнюю операцию записи на res потому что переменная никогда не читается после той точки. Мертвый код может указать на непреднамеренную ошибку кодирования. Например, вы намеревались возвратить значение res вместо arg.

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

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

Введенный в R2017b