Переполнение при преобразовании между целочисленными типами
Этот дефект происходит при преобразовании целого числа в меньший целочисленный тип. Если переменная не имеет достаточного количества байтов, чтобы представлять исходное значение, переполнение преобразования.
Точное выделение ресурсов хранения для различных типов с плавающей точкой зависит от вашего процессора. Смотрите Target processor type (-target)
.
Целочисленное преобразование переполняет результата в неопределенном поведении.
Фиксация зависит от первопричины дефекта. Часто детали результата (или подсказки исходного кода в Polyspace, когда Вы Кодируете) показывают последовательность событий, которые привели к дефекту. Можно реализовать закрепление на любом событии в последовательности. Если детали результата не показывают эту историю события, можно искать предыдущие ссылки переменных, относящихся к дефектному использованию, щелкают правой кнопкой по опциям по исходному коду и находят связанные события. См. также Интерпретируют Результаты Bug Finder в Пользовательском интерфейсе Рабочего стола Polyspace или Интерпретируют Результаты Bug Finder в Polyspace доступ к веб-интерфейсу.
Можно зафиксировать дефект:
Используя больший тип данных для результата преобразования так, чтобы все значения могли быть вмещены.
Проверка значения, которые приводят к переполнению и выполнению соответствующей обработки ошибок.
В общем случае избегайте преобразований в меньшие целочисленные типы.
Смотрите примеры мер ниже.
Если вы не хотите устранять проблему, добавьте комментарии в свой результат или код, чтобы избежать другого анализа. См.:
Обратитесь к Результатам Polyspace Через Исправления ошибок или Выравнивания, если вы рассматриваете результаты в пользовательском интерфейсе Polyspace.
Обратитесь к Результатам в Polyspace доступ Через Исправления ошибок или Выравнивания, если вы рассматриваете результаты в веб-браузере.
Аннотируйте Код и Скройте Известные или Приемлемые результаты, если вы рассматриваете результаты в IDE.
Группа: числовой |
Язык: C | C++ |
Значение по умолчанию: On |
Синтаксис командной строки: INT_CONV_OVFL |
Удар: высоко |
ID CWE: 128, 189, 190, 191, 192, 197 |
Float conversion overflow
| Unsigned integer conversion overflow
| Sign change integer conversion overflow
| Find defects (-checkers)