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