#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 и вызвать непредсказуемое поведение.