Операция с плавающей запятой имеет субнормальные результаты
Эта проверка определяет, дает ли операция с плавающей запятой субнормальный результат.
Субнормальные числа имеют величины, меньшие, чем наименьшее число с плавающей запятой, которое может быть представлено без ведущих нулей в значительном. Наличие субнормальных чисел указывает на потерю значащих цифр. Эти потери могут накапливаться в ходе последующих операций и в конечном итоге приводить к неожиданным значениям. Субнормальные числа также могут замедлять выполнение на целевых объектах без аппаратной поддержки.
По умолчанию результаты проверки не отображаются в результатах проверки. Для просмотра результатов проверки измените значение опции по умолчанию. Subnormal detection mode (-check-subnormal). Результаты проверки зависят от заданного режима обнаружения. Во всех режимах, отличных от allow, чтобы определить субнормальные результаты, выполните поиск красных или оранжевых субнормальных поплавковых проверок операций.
| Способ | Проверить цвета | Поведение после проверки |
|---|---|---|
Этот режим обнаруживает появление субнормального значения. Этот режим останавливает путь выполнения с субнормальным результатом и предотвращает дальнейшее распространение субнормальных значений. Поэтому на практике отображается только первое вхождение субнормального значения. | Цвет чека зависит только от результата операции. Проверка помечает операцию, которая имеет субнормальные результаты, даже если эти результаты получены только от субнормальных операндов. Например, если | Проверка блокировки. Если проверка красного цвета, проверка прекращается. Если проверка оранжевая, проверка удаляет из рассмотрения пути выполнения, содержащие субнормальный результат. Например, всплывающая подсказка по результату не отображает субнормальные значения. |
Этот режим выделяет все вхождения субнормальных значений. Даже если субнормальный результат получен из предыдущих субнормальных значений, результат подсвечивается. | Цвет чека зависит только от результата операции. Проверка помечает операцию, которая имеет субнормальные результаты, даже если эти результаты получены только от субнормальных операндов. Например, если | Неблокирующая проверка. Проверка продолжается, даже если проверка красного цвета. Если проверка оранжевая, проверка не удаляет из рассмотрения пути выполнения, содержащие субнормальный результат. |
Этот режим выделяет первое вхождение субнормального значения. Если субнормальное значение распространяется на дальнейшие субнормальные результаты, эти последующие результаты не подсвечиваются. | Цвет проверки зависит от результата операции и значений операнда. Проверка не помечает субнормальный результат, если он получен только от субнормальных операндов. В этом режиме выполняется проверка:
| Неблокирующая проверка. Проверка продолжается, даже если проверка красного цвета. Если проверка оранжевая, проверка не удаляет из рассмотрения пути выполнения, содержащие субнормальный результат. |
При выборе проверки субномеров можно также определить в подсказках, исключает ли диапазон переменных субнормальные значения. Например, если всплывающие подсказки отображаются [-1.0 .. -1.1754E-38] or [-0.0..0.0] or [1.1754E-38..1.0], можно интерпретировать, что переменная не имеет субнормальных значений.
| Группа: Числовые |
| Язык: C | C++ |
| Аббревиатура: SUBNORMAL |