Неправильные аргументы к стандартной библиотечной функции
Этот дефект происходит, когда вы используете недействительные аргументы с функцией с плавающей точкой от стандартной библиотеки. Этот дефект берет:
Округление и стандартные программы абсолютного значения
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 в Пользовательском интерфейсе Рабочего стола Polyspace или Интерпретируют Результаты Bug Finder в Polyspace доступ к веб-интерфейсу.
Это - хорошая практика, чтобы обработать для доменных ошибок перед использованием стандартной функции плавающей точки библиотеки. Например, прежде, чем вызвать acos
функция, проверяйте, находится ли аргумент в [-1.0, 1.0], и обработайте ошибку.
Смотрите примеры мер ниже.
Если вы не хотите устранять проблему, например, когда вы обрабатываете бесконечности в своем коде, добавьте комментарии в свой результат или код, чтобы избежать другого анализа. См.:
Обратитесь к Результатам Polyspace Через Исправления ошибок или Выравнивания, если вы рассматриваете результаты в пользовательском интерфейсе Polyspace.
Обратитесь к Результатам в Polyspace доступ Через Исправления ошибок или Выравнивания, если вы рассматриваете результаты в веб-браузере.
Аннотируйте Код и Скройте Известные или Приемлемые результаты, если вы рассматриваете результаты в IDE.
Группа: числовой |
Язык: C | C++ |
Значение по умолчанию: On |
Синтаксис командной строки: 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 string routine
| Invalid use of standard library routine