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