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.

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

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