Used non-shared variable

Глобальные переменные, используемые в одной задаче

Описание

Не общая используемая глобальная переменная имеет следующие свойства:

  • Переменная используется только в одной задаче.

  • Polyspace® обнаруживает по меньшей мере одну операцию чтения или записи переменной.

В коде, который не предназначен для многозадачности, все глобальные переменные являются совместными.

В ваших верификациях результатах эти переменные окрашены в черный цвет на Results List и Variable Access панелях.

Примеры

расширить все

int var1;
int var2;
int var3;
int var4;

int input(void);

void main() {
    int loc_var = input(), flag=0;

    var1 = loc_var;
    if(0) {
        var3 = loc_var;
    }
    if(flag!=0) {
        var4 =loc_var;
    }


}

Если вы проверяете вышеуказанный код в проекте на C, программное обеспечение перечисляет var2, var3 и var4 как неиспользуемые переменные и var1 как неиспользуемая используемая переменная.

var3 и var4 используются в недоступном коде и поэтому помечены как неиспользованные.

Примечание

В проекте C++ программное обеспечение не перечисляет неиспользованную переменную var2.

unsigned int var_1;
unsigned int var_2;
volatile int randomVal;

void task1(void) {
    while(randomVal)
    	operation(1);
}

void task2(void) {
    while(randomVal)
	    operation(2);
}

void operation(int i) {
    if(i==1) {
        var_1++;
    }
    else    {
        var_2++;
    }
}

int main(void) {
    return 0;
}

В этом примере, даже когда вы задаете task1 и task2 для опции Tasks (-entry-points)программное обеспечение определяет, что var_1 и var_2 не являются общими.

Хотя и то и другое task1 и task2 вызвать функцию operation, из-за if оператор в operation, task1 может работать только с var_1 и task2 только на var_2.

Проверяйте информацию

Язык: C | C++