Допущения о переменных областях значений

Если Polyspace® не может определить значение переменных из кода, она принимает, что переменная имеет полную область значений значений, разрешенных ее типом.

Для образца, для переменного целого типа, чтобы определить минимальное и максимальное допустимое значение, Polyspace использует следующие критерии:

  • Стандарт C задает область значений n со знаком-битная переменная целого типа должна быть не менее [- (2n-1-1), 2n-1-1].

    Заданная Target processor type определяет количество бит, выделенных для определенного типа. Для получения дополнительной информации смотрите Target processor type (-target).

  • Polyspace принимает, что ваша цель использует представление дополнения двух для целых чисел со знаком. Программа использует это представление, чтобы определить точную область значений переменной. В этом представлении область значений подписанного n-битная переменная целого типа [-2n-1, 2n-1-1].

Для примера, для i386 процессор:

  • A char переменная имеет 8 биты. Стандарт C задает, что область значений char переменная должна быть не менее [-127,127].

  • Используя представление дополнения двух, Polyspace принимает, что точная область значений char переменная - [-128,127].

Чтобы определить область значений, который Polyspace принимает для определенного типа:

  1. Выполните верификацию по этому коду. Замените type с таким именем типа, как int.

    type getVal(void);
    void main() {
    		type val = getVal();
    }

  2. Откройте результаты верификации. На панели Source установите курсор на val.

    Подсказка предоставляет область значений, который Polyspace принимает для type. Начиная с getVal не определено, Polyspace принимает, что возврат значение getVal имеет полную область значений значений, разрешенных type.