-check-infinite)Укажите, как обрабатывать операции с плавающей запятой, которые приводят к бесконечности
Этот параметр влияет только на анализ программы проверки кода.
Укажите, как анализ должен обрабатывать операции с плавающей запятой, которые приводят к бесконечностям.
Пользовательский интерфейс (только для настольных ПК): в конфигурации проекта параметр находится в узле Проверить поведение. Другие параметры, которые также необходимо включить, см. в разделе Зависимости.
файл командной строки и параметров: Использовать параметр -check-infinite. См. раздел Сведения о командной строке.
Используйте эту опцию, чтобы включить обнаружение операций с плавающей запятой, которые приводят к бесконечностям.
Если указано, что анализ должен учитывать нефинитные поплавки, по умолчанию анализ не помечает эти операции. Используйте эту опцию, чтобы обнаружить эти операции, пока они все еще включают нефинитные плавающие элементы.
По умолчанию: allow
allow Проверка не приводит к проверке операции.
Например, в следующем коде отсутствует проверка переполнения.
double func(void) {
double x=1.0/0.0;
return x;
}warn-first Проверка производит проверку операции. Проверка определяет, является ли результат операции бесконечным, если сами операнды не бесконечны. Проверка не завершает поток выполнения, который создает бесконечность.
Если проверка обнаруживает операцию, которая производит бесконечность как единственно возможный результат на всех путях выполнения, а сами операнды никогда не являются бесконечными, проверка становится красной. Если операция потенциально может привести к бесконечности, проверка будет оранжевой.
Например, в следующем коде существует неблокирующая проверка переполнения на бесконечность.
double func(void) {
double x=1.0/0.0;
return x;
}Несмотря на то, что проверка переполнения на / операция красного цвета, проверка продолжается. Например, зеленая неинициализированная проверка локальной переменной появляется на x в return заявление.
forbid Проверка производит проверку операции и завершает поток выполнения, который создает бесконечность.
Если проверка имеет красный цвет, проверка не продолжается для оставшегося кода в той же области, что и проверка. Если проверка является оранжевой, проверка продолжается, но удаляет из рассмотрения значения переменных, которые создали бесконечность.
Например, в следующем коде имеется блокирующая проверка переполнения на бесконечность.
double func(void) {
double x=1.0/0.0;
return x;
}Проверка прекращается, поскольку проверка переполнения на / операция красного цвета. Например, неинициализированная проверка локальной переменной не отображается на x в return заявление.
Чтобы использовать эту опцию, необходимо включить режим проверки, который включает бесконечности и NaNs. Посмотрите Consider non finite floats (-allow-non-finite-floats).
Параметр: -check-infinite |
Значение: allow | warn-first | forbid |
По умолчанию: allow |
Пример (проверка кода): polyspace-code-prover -sources |
Пример (сервер проверки кода):
polyspace-code-prover-server -sources |