#include <limits.h>
int shared_var;
void inc() {
shared_var+=2;
}
void reset() {
shared_var = 0;
}
void task() {
volatile int randomValue = 0;
while(randomValue) {
reset();
inc();
inc();
}
}
void interrupt() {
shared_var = INT_MAX;
}
void interrupt_handler() {
volatile int randomValue = 0;
while(randomValue) {
interrupt();
}
}
void main() {
}В этом примере Polyspace® вычисляет количество потенциально незащищенной совместно используемой переменной, чтобы быть тем. Разделяемая переменная shared_var незащищен, если вы задаете task и interrupt_handler как точки входа и не задают механизмы защиты.
Операция shared_var = INT_MAX может прервать другие операции на shared_var и вызовите непредсказуемое поведение.