Правый операнд логического && или || оператор не должен содержать персистентные побочные эффекты
Правый операнд логического && или || оператор не должен содержать персистентные побочные эффекты.
Правильный операнд оператора ||
не оценен, если левый операнд верен. Правильный операнд оператора &&
не оценен, если левый операнд ложный. В этих случаях, если правильный операнд изменяет значение переменной, не происходит модификация. После операции, если вы ожидаете измененное значение переменной, не может всегда происходить модификации.
Для этого правила Polyspace® полагает, что все вызовы функции имеют персистентный побочный эффект.
Если чистая функция отмечается, прежде, чем проигнорировать это нарушение правила, убедитесь, что функция не имеет никаких побочных эффектов. Например, функции с плавающей точкой, такие как abs()
, кажется, только возвращают значение и не имеют никакого другого побочного эффекта. Однако эти функции используют Стек Регистра FPU и могут иметь побочные эффекты в определенной архитектуре, например, определенной архитектуре Intel®.
Если правильный операнд является энергозависимой переменной, Polyspace не отмечает это, как правило, нарушение.
Правый операнд && оператора не должен содержать побочные эффекты. Правый операнд || оператор не должен содержать побочные эффекты.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: побочные эффекты |
Категория: необходимый |
Категория AGC: необходимый |
Язык: C90, C99 |