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