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