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