Когда вы запускаете анализ Bug Finder™, Polyspace® делает определенные предположения об инициализации глобальных переменных. Эти предположения зависят от того, как вы объявляете и задаете глобальные переменные. Например, в этом коде
int foo(void) { return 1/gvar; }
gvar
в этих случаях:
Вы задаете int gvar;
в исходном коде и обеспечивают main
функция, которая вызывает foo
. Средство поиска ошибки следует стандартам ANSI, которые утверждают, что переменная инициализируется, чтобы обнулить.
Вы задаете int gvar;
или объявите extern int gvar;
в исходном коде. Другой вызовы функции foo
и наборы gvar=0
. В противном случае, когда ваши исходные файлы являются неполными и не содержат main
функция, Средство поиска Ошибки не делает предположения об инициализации gvar
.
Вы объявляете const int gvar;
. Средство поиска ошибки принимает gvar
инициализируется, чтобы обнулить из-за const
ключевое слово.
Аналитические предположения средства поиска ошибки | Входные параметры в Polyspace Bug Finder