/* bug #1108 - Problem with static locals? */ #include #pragma static-locals (on) unsigned char x = 0; unsigned char PrintVar1(void) { unsigned char cx = x + 1; printf("cx:%d x:%d\n", cx, x); return cx == 0; } unsigned char PrintVar2(void) { unsigned char cx = x + 1; unsigned char cy; cy = x + 1; printf("cx:%d cy:%d x:%d\n", cx, cy, x); return cx != cy; } #pragma static-locals (off) unsigned char n; unsigned char ret = 0; int main(void) { for (n = 0; n < 10; n++) { ++x; ret |= PrintVar1(); ret |= PrintVar2(); } return ret; }