Глобальные переменные в Polyspace Bug Finder

Когда вы запускаете анализ Bug Finder™, Polyspace® делает определенные предположения об инициализации глобальных переменных. Эти предположения зависят от того, как вы объявляете и задаете глобальные переменные. Например, в этом коде

int foo(void) {
    return 1/gvar;
}
Средство поиска ошибки обнаруживает дефект division by zero с переменной gvar в этих случаях:

  • Вы задаете int gvar; в исходном коде и обеспечиваете функцию main, которая вызывает foo. Средство поиска ошибки следует стандартам ANSI, которые утверждают, что переменная инициализируется, чтобы обнулить.

  • Вы задаете int gvar; или объявляете extern int gvar; в исходном коде. Другой вызовы функции foo и наборы gvar=0. В противном случае, когда ваши исходные файлы являются неполными и не содержат функцию main, Средство поиска Ошибки не делает предположения об инициализации gvar.

  • Вы объявляете const int gvar;. Средство поиска ошибки принимает, что gvar инициализируется, чтобы обнулить из-за ключевого слова const.

Смотрите также

|