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