Арифметическая операция вызывает переполнение
Эта проверка арифметической операции определяет переполнение результата. Результат этой проверки зависит от того, разрешены ли нефинитные результаты плавания, такие как бесконечность и NaN.
Результат проверки также зависит от заданного режима округления с плавающей запятой. По умолчанию используется режим округления to-nearest. Посмотрите Float rounding mode (-float-rounding-mode).
По умолчанию не допускаются конечные плавающие элементы. Если результат операции выходит за пределы допустимого диапазона, происходит переполнение. Проверка:
Красный, если результат операции выходит за пределы допустимого диапазона.
Оранжевый, если результат операции выходит за пределы допустимого диапазона на некоторых путях выполнения.
Зеленый, если результат операции не выходит за пределы допустимого диапазона.
Чтобы точно настроить поведение проверки переполнения, используйте эти параметры и укажите аргумент forbid, allow, или warn-with-wrap-around:
Типы данных операндов определяют допустимый диапазон для арифметической операции. Если операция включает два операнда, для определения общего типа данных при проверке используются правила преобразования ANSI ® C. Этот общий тип данных определяет допустимый диапазон.
Некоторые примеры правил преобразования см. в разделе Допущения об неявных преобразованиях типов данных.
Если включен режим проверки, который включает бесконечности и указывает, что проверка должна предупреждать об операциях, создающих бесконечности, проверка выполняется следующим образом:
Красный, если операция производит бесконечность на всех путях выполнения, которые считает программное обеспечение, и сами операнды не бесконечны.
Оранжевый, если операция производит бесконечность на некоторых путях выполнения, когда сами операнды не бесконечны.
Зеленый, если операция не производит бесконечность, если только сами операнды не являются бесконечными.
Если указано, что проверка должна запрещать операции, создающие бесконечности, цвет проверки зависит только от результата операции. Цвет не зависит от операндов.
Чтобы включить этот режим проверки, используйте следующие параметры:
Infinities (-check-infinite): Использовать аргумент warn или forbid.
| Группа: Числовые |
| Язык: C | C++ |
| Акроним: OVFL |