Когда вы запускаете анализ 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