Показать все переполнения в режиме обхода
-show-similar-overflows
-show-similar-overflows приводит к отображению всех переполнений в режиме огибания, даже если они вызваны одной и той же первопричиной.
При выборе warn-with-wrap-around для опции Overflow mode for signed integer (-signed-integer-overflows) или Overflow mode for unsigned integer (-unsigned-integer-overflows), значения, которые переполняются, переносятся. Например, значение INT_MAX + 1 обертывает для INT_MIN. Путь со значением переполнения продолжается за пределами переполнения с переносимым значением и может привести к аналогичному переполнению нескольких строк позже. По умолчанию средство проверки кода обнаруживает переполнение по той же основной причине и показывает только первое из аналогичных переполнений. Если устранить это переполнение, последующие переполнения также будут исправлены. Если необходимо просмотреть все переполнения в режиме обхода, используйте опцию -show-similar-overflows.
Если анализ выполняется из пользовательского интерфейса (только для настольных продуктов Polyspace ®), на панели Конфигурация (Configuration) можно ввести этот параметр в поле Другое (Other). ПосмотритеOther.
В этом примере значение var неизвестен, и случаи ребер могут привести к переполнению в операции *copy1 = var * 2. Те же крайние случаи также приводят к переполнению в следующей операции. Средство проверки кода показывает оранжевую проверку переполнения только при первой операции.
int input();
void getEven(int* copy1, int* copy2) {
int var;
var = input();
*copy1 = var * 2;
*copy2 = var * 2;
}При использовании опции -show-similar-overflows, средство проверки кода показывает оранжевые проверки переполнения для обеих операций.
int input();
void getEven(int* copy1, int* copy2) {
int var;
var = input();
*copy1 = var * 2;
*copy2 = var * 2;
}-options-file | Overflow | Overflow mode for signed integer (-signed-integer-overflows) | Overflow mode for unsigned integer (-unsigned-integer-overflows)