Неправильные аргументы к стандартной библиотечной функции
Недопустимое использование стандартной стандартной программы плавающей точки библиотеки происходит, когда вы используете недействительные аргументы с функцией с плавающей точкой от стандартной библиотеки. Этот дефект берет:
Округление и стандартные программы абсолютного значения
ceil, fabs, floor, fmod
Части и стандартные программы деления
fmod, modf
Экспоненты и логарифмические стандартные программы
frexp, ldexp, sqrt, pow, exp, log, log10
Стандартные программы функции тригонометрии
cos, sin, tan, acos, asin, atan, atan2, cosh, sinh, tanh, acosh, asinh, atanh
Доменные ошибки на стандартной плавающей точке библиотеки функционируют результат в заданных реализацией значениях. Если вы используете функциональное возвращаемое значение в последующих вычислениях, вы видите неожиданные результаты.
Фиксация зависит от первопричины дефекта. Часто детали результата показывают последовательность событий, которые привели к дефекту. Используйте этот список событий, чтобы определить, как аргумент функции получает недопустимые значения. Можно реализовать закрепление на любом событии в последовательности. Если детали результата не показывают историю события, можно проследить использование, щелкните правой кнопкой по опциям по исходному коду и смотрите предыдущие связанные события. См. также Интерпретируют Результаты Polyspace Bug Finder.
Это - хорошая практика, чтобы обработать для доменных ошибок перед использованием стандартной функции плавающей точки библиотеки. Например, прежде, чем вызвать функцию acos
, проверяйте, находится ли аргумент в [-1.0, 1.0], и обработайте ошибку.
Смотрите примеры мер ниже.
Если вы не хотите устранять проблему, например, когда вы обрабатываете бесконечности в своем коде, добавьте комментарии в свой результат или код, чтобы избежать другого анализа. Смотрите Результаты Polyspace Адреса Через Исправления ошибок или Комментарии.
Группа: числовой |
Язык: C | C++ |
Значение по умолчанию: на |
Синтаксис командной строки: FLOAT_STD_LIB |
Влияние: высоко |
ID CWE: 227, 369, 682, 873 |
Find defects (-checkers)
| Invalid use of standard library integer routine
| Invalid use of standard library memory routine
| Invalid use of standard library routine
| Invalid use of standard library string routine