Проверяется валидность значений, переданных в библиотечные функции
Проверяется валидность значений, переданных в библиотечные функции.
Многие функции Standard C не проверяют валидность переданных им параметров. Даже если проверки выполняются компилятором, нет гарантии, что проверки адекватны. Для примера вы не должны передавать отрицательные числа в sqrt
или log
.
Polyspace® повышает результат нарушения для аргументов функции библиотеки, если все следующие значения true:
Аргумент является локальной переменной.
Локальная переменная не тестируется между последним назначением и вызовом функции библиотеки.
Соответствующий параметр функции библиотеки имеет ограниченную входную область.
Функция библиотеки является одной из следующих распространенных математических функций:
sqrt
tan
pow
log
log10
fmod
acos
asin
acosh
atanh
или atan2
Bug Finder и Code Prover проверяют это правило по-разному. Анализ может привести к различным результатам.
Совет
Чтобы выполнить массовое выравнивание всех результатов, связанных с одной и той же функцией библиотеки, используйте столбец Detail на панели Results List. Щелкните заголовок столбца, чтобы сгруппировать все результаты с одной и той же записью. Выберите первый результат, а затем последний результат при удержании Shift
ключ. Присвойте статус одному из результатов. Если Вы не видите Detail столбец, щелкните правой кнопкой мыши по любому другому заголовку столбца и позвольте этот столбец.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: Кодовые проекты |
Категория: Требуемая |
Категория AGC: Требуется |