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