Глобальные переменные в 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 ключевое слово.

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

|